home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TeX 1995 July
/
TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO
/
macros
/
lamstex
/
inputs
/
lamstex.tex
(
.txt
)
< prev
next >
Wrap
LaTeX Document
|
1991-09-06
|
148KB
|
4,193 lines
% LAMSTEX.TEX VERSION 2.01
% COPYRIGHT (C) 1989, 1990, 1991 BY THE TEXPLORATORS CORPORATION
% 3701 W. ALABAMA, SUITE 450-273, HOUSTON, TX 77027
% ALL RIGHTS RESERVED
% ABSOLUTELY NO CHANGES SHOULD BE MADE TO THIS FILE;
% CHANGES SHOULD BE MADE ONLY IN STYLE FILES.
\catcode`\@=11
\ifx\amstexloaded@\relax\else
\errmessage{AmS-TeX must be loaded before LamS-TeX}\fi
\ifx\laxread@\undefined\else\catcode`\@=\active\endinput\fi
\def\err@#1{\errmessage{LamS-TeX error: #1}}
\def^^L{\par}
\let\+\tabalign
\def\newcount{\alloc@0\count\countdef\insc@unt}
\def\newdimen{\alloc@1\dimen\dimendef\insc@unt}
\def\newskip{\alloc@2\skip\skipdef\insc@unt}
\def\newmuskip{\alloc@3\muskip\muskipdef\@cclvi}
\def\newbox{\alloc@4\box\chardef\insc@unt}
\let\newtoks\relax
\def\newhelp#1#2{\newtoks#1#1\expandafter{\csname#2\endcsname}}
\def\newtoks{\alloc@5\toks\toksdef\@cclvi}
\def\newread{\alloc@6\read\chardef\sixt@@n}
\def\newwrite{\alloc@7\write\chardef\sixt@@n}
\def\newfam{\alloc@8\fam\chardef\sixt@@n}
\def\newlanguage{\alloc@9\language\chardef\@cclvi}
\def\newinsert#1{\global\advance\insc@unt by\m@ne
\ch@ck0\insc@unt\count
\ch@ck1\insc@unt\dimen
\ch@ck2\insc@unt\skip
\ch@ck4\insc@unt\box
\allocationnumber=\insc@unt
\global\chardef#1=\allocationnumber
\wlog{\string#1=\string\insert\the\allocationnumber}}
\def\newif#1{\count@\escapechar \escapechar\m@ne
\expandafter\expandafter\expandafter
\edef\@if#1{true}{\let\noexpand#1=\noexpand\iftrue}%
\expandafter\expandafter\expandafter
\edef\@if#1{false}{\let\noexpand#1=\noexpand\iffalse}%
\@if#1{false}\escapechar\count@}
\def\bye{\par\vfill\supereject\end}
\let\beginsection\undefined
\def\Err@#1{\errhelp\defaulthelp@\err@{#1}}
{\catcode`\@=\active
\edef\next{\gdef\noexpand@{\futurelet\noexpand\next
\csname at\string@\endcsname}}
\next
\def\at@{\ifcat\noexpand\next a\let\next@\at@@\else
\ifcat\noexpand\next0\let\next@\at@@\else
\ifcat\noexpand\next\relax\let\next@\at@@\else
\let\next@\at@@@\fi\fi\fi\next@}
\def\at@@@{\errhelp\athelp@\err@{Invalid use of @}}
\def\at@@#1{\expandafter
\ifx\csname\string#1@at\endcsname\relax\let\next@\at@@@\else
\DN@{\csname\string#1@at\endcsname}\fi\next@}
\def\atdef@#1{\expandafter\def\csname\string#1@at\endcsname}
\newif\iftest@
\def\tagin@#1{\tagin@false
\DN@##1\tag##2##3\next@{\test@true\ifx\tagin@##2\test@false\fi}%
\next@#1\tag\tagin@\next@\tagin@false\iftest@\tagin@true\fi}
\let\lkerns@\relax
\def\nolinebreak{\RIfM@\mathmodeerr@\nolinebreak\else
\ifhmode\saveskip@\lastskip\unskip
\nobreak\ifdim\saveskip@>\z@\hskip\saveskip@\fi\lkerns@
\else\vmodeerr@\nolinebreak\fi\fi}
\def\allowlinebreak{\RIfM@\mathmodeerr@\allowlinebreak\else
\ifhmode\saveskip@\lastskip\unskip
\allowbreak\ifdim\saveskip@>\z@\hskip\saveskip@\fi\lkerns@
\else\vmodeerr@\allowlinebreak\fi\fi}
\def\linebreak{\RIfM@\mathmodeerr@\linebreak\else
\ifhmode\unskip\unkern\break\lkerns@
\else\vmodeerr@\linebreak\fi\fi}
\let\nkerns@\relax
\def\newline{\RIfM@\mathmodeerr@\newline\else
\ifhmode\unskip\unkern\null\hfill\break\nkerns@
\else\vmodeerr@\newline\fi\fi}%
\def\newbox@{\alloc@@4\box\chardef\insc@unt}
\def\newcount@{\alloc@@0\count\countdef\insc@unt}
\def\accentedsymbol#1#2{\expandafter\newbox@\csname\exstring@#1@box\endcsname
\setbox\csname\exstring@#1@box\endcsname\hbox{$\m@th#2$}%
\define#1{\copy\csname\exstring@#1@box\endcsname{}}}
\def\rightadd@#1\to#2{\toks@{\\#1}\toks@@\expandafter{#2}\xdef#2{\the\toks@@
\the\toks@}\toks@{}\toks@@{}}
\def\fontlist@{\\\tenrm\\\sevenrm\\\fiverm\\\teni\\\seveni\\\fivei
\\\tensy\\\sevensy\\\fivesy\\\tenex\\\tenbf\\\sevenbf\\\fivebf
\\\tensl\\\tenit}
\def\font@#1=#2 {\rightadd@#1\to\fontlist@\font#1=#2 }
\def\ismember@#1#2{\global\let\Next@ F\let\next@= #2%
{\def\\##1{\let\nextii@##1\ifx\nextii@\next@\global\let\Next@ T\fi}#1}%
\test@false\ifx\Next@ T\test@true\fi\let\next@\relax}
\def\FNSS@#1{\let\FNSS@@#1\FN@\FNSS@@@}
\def\FNSS@@@{\ifx\next\space@\def\FNSS@@@@. {\FN@\FNSS@@@}\else
\def\FNSS@@@@.{\FNSS@@}\fi\FNSS@@@@.}
\atdef@"{\unskip
\DN@{\ifx\next`\DN@`{\FN@\nextii@}%
\else\ifx\next\lq\DN@\lq{\FN@\nextii@}%
\else\DN@####1{\FN@\nextiii@}\fi\fi
\next@}%
\DNii@{\ifx\next`\DN@`{\sldl@``}%
\else\ifx\next\lq\DN@\lq{\sldl@``}%
\else\DN@{\dlsl@`}\fi\fi\next@}%
\def\nextiii@{\ifx\next'\DN@'{\srdr@''}%
\else\ifx\next\rq\DN@\rq{\srdr@''}%
\else\DN@{\drsr@'}\fi\fi\next@}%
\FNSS@\next@}
\def\root{%
\DN@{\ifx\next\uproot\let\next@\nextii@\else
\ifx\next\leftroot\let\next@\nextiii@\else
\let\next@\plainroot@\fi\fi\next@}%
\DNii@\uproot##1{\uproot@##1\relax\FNSS@\nextiv@}%
\def\nextiv@{\ifx\next\leftroot\let\next@\nextv@\else
\let\next@\plainroot@\fi\next@}%
\def\nextv@\leftroot##1{\leftroot@##1\relax\plainroot@}%
\def\nextiii@\leftroot##1{\leftroot@##1\relax\FNSS@\nextvi@}%
\def\nextvi@{\ifx\next\uproot\let\next@\nextvii@\else
\let\next@\plainroot@\fi\next@}%
\def\nextvii@\uproot##1{\uproot@##1\relax\plainroot@}%
\bgroup\uproot@\z@\leftroot@\z@
\FNSS@\next@}
\def\loop#1\repeat{\def\iterate{#1\relax\expandafter\iterate\fi}%
\iterate\let\iterate\relax}
\def\gloop@#1\repeat{\gdef\iterate@{#1\relax\expandafter\iterate@\fi}%
\iterate@\global\let\iterate@\relax}
\def\printoptions{\W@{Do you want S(yntax check),
G(alleys) or P(ages)?^^JType S, G or P, follow by <return>: }\loop
\read\m@ne to\ans@
\edef\next@{\def\noexpand\Ans@{\ans@}}\uppercase\expandafter{\next@}%
\ifx\Ans@\S@\test@true\syntax\else
\ifx\Ans@\G@\test@true\galleys\else
\ifx\Ans@\P@\test@true\else
\test@false\fi\fi\fi
\iftest@\else\W@{Type S, G or P, follow by <return>: }%
\repeat}
\expandafter\let\csname A@;\endcsname;
\expandafter\let\csname A@:\endcsname:
\expandafter\let\csname A@?\endcsname?
\expandafter\let\csname A@!\endcsname!
\def\APdef#1{\def\next@{\expandafter\let\csname A@\string#1\endcsname#1}%
\afterassignment\next@\def#1}
\let\fextra@\,
\def\tdots@{\unskip
\DN@{$\m@th\mathinner{\ldotp\ldotp\ldotp}\,
\ifx\next,\,$\else\ifx\next.\,$\else
\ifx\next;\,$\else
\expandafter\ifx\csname A@\string;\endcsname\next\fextra@$\else
\ifx\next:\,$\else
\expandafter\ifx\csname A@\string:\endcsname\next\fextra@$\else
\ifx\next?\,$\else
\expandafter\ifx\csname A@\string?\endcsname\next\fextra@$\else
\ifx\next!\,$\else
\expandafter\ifx\csname A@\string!\endcsname\next\fextra@$\else
$ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
\ \FN@\next@}
\def\extrap@#1{%
\ifx\next,\DN@{#1\,}\else
\ifx\next;\DN@{#1\,}\else
\expandafter\ifx\csname A@\string;\endcsname\next\DN@{#1\fextra@}\else
\ifx\next.\DN@{#1\,}\else\extra@
\ifextra@\DN@{#1\,}\else
\let\next@#1\fi\fi\fi\fi\fi\next@}
\def\dotsc{\DN@{\ifx\next;\plainldots@\,\else
\expandafter\ifx\csname A@\string;\endcsname\next\plainldots@\fextra@\else
\ifx\next.\plainldots@\,\else\extra@\plainldots@
\ifextra@\,\fi\fi\fi\fi}%
\FN@\next@}
\def\keybin@{\keybin@true
\ifx\next+\else\ifx\next=\else\ifx\next<\else\ifx\next>\else\ifx\next-\else
\ifx\next*\else\ifx\next:\else
\expandafter\ifx\csname A@\string;\endcsname\next\else
\keybin@false\fi\fi\fi\fi\fi\fi\fi\fi}
\def\boldkey#1{\ifcat\noexpand#1A%
\ifcmmibloaded@{\fam\cmmibfam#1}\else
\Err@{First bold symbol font not loaded}\fi
\else
\let\next=#1%
\ifx#1!\mathchar"5\bffam@21 \else
\expandafter\ifx\csname A@\string!\endcsname\next\mathchar"5\bffam@21 \else
\ifx#1(\mathchar"4\bffam@28 \else\ifx#1)\mathchar"5\bffam@29 \else
\ifx#1+\mathchar"2\bffam@2B \else\ifx#1:\mathchar"3\bffam@3A \else
\expandafter\ifx\csname A@\string:\endcsname\next\mathchar"3\bffam@3A \else
\ifx#1;\mathchar"6\bffam@3B \else
\expandafter\ifx\csname A@\string;\endcsname\next\mathchar"6\bffam@3B \else
\ifx#1=\mathchar"3\bffam@3D \else
\ifx#1?\mathchar"5\bffam@3F \else
\expandafter\ifx\csname A@\string?\endcsname\next\mathchar"5\bffam@3F \else
\ifx#1[\mathchar"4\bffam@5B \else
\ifx#1]\mathchar"5\bffam@5D \else
\ifx#1,\mathchari@63B \else
\ifx#1-\mathcharii@200 \else
\ifx#1.\mathchari@03A \else
\ifx#1/\mathchari@03D \else
\ifx#1<\mathchari@33C \else
\ifx#1>\mathchari@33E \else
\ifx#1*\mathcharii@203 \else
\ifx#1|\mathcharii@06A \else
\ifx#10\bold0\else\ifx#11\bold1\else\ifx#12\bold2\else\ifx#13\bold3\else
\ifx#14\bold4\else\ifx#15\bold5\else\ifx#16\bold6\else\ifx#17\bold7\else
\ifx#18\bold8\else\ifx#19\bold9\else
\Err@{\noexpand\boldkey can't be used with #1}%
\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
\def\arabic#1{#1}
\def\alph#1{\count@#1\relax\advance\count@96 \ifnum\count@>122
\Err@{\noexpand\alph invalid for numbers > 26}\else\char\count@\fi}
\def\Alph#1{\count@#1\relax\advance\count@64 \ifnum\count@>90
\Err@{\noexpand\Alph invalid for numbers > 26}\else\char\count@\fi}
\def\roman#1{\romannumeral#1\relax}
\def\Roman#1{\uppercase\expandafter{\romannumeral#1}}
\def\fnsymbol#1{\count@#1\relax
\count@@\count@
\advance\count@\m@ne\divide\count@7
\count@@@\count@\advance\count@@@\@ne
\multiply\count@7 \advance\count@@-\count@
\count@\count@@@
{\loop
\ifcase\count@@\or*\or\dag\or\ddag\or\P\or\S\or\text{$\|$}\or\#\fi
\advance\count@\m@ne\ifnum\count@>\z@\repeat}}
\def\cardnine@#1{\ifcase#1\or one\or two\or three\or four\or five\or
six\or seven\or eight\or nine\fi}
\let\alloc@\alloc@@
\newcount\ten@
\ten@10
\def\cardinal#1{\count@#1\relax
\ifnum\count@>99 \number\count@
\else
\ifnum\count@=\z@ zero%
\else
\ifnum\count@<\ten@\cardnine@\count@
\else
\ifnum\count@<20
\advance\count@-\ten@
\ifcase\count@ ten\or eleven\or twelve\or thirteen\or fourteen\or
fifteen\or sixteen\or seventeen\or eighteen\or nineteen\fi
\else
\count@@\count@\count@@@\count@@
\divide\count@\ten@\multiply\count@\ten@
\advance\count@@@-\count@\divide\count@\ten@
\ifcase\count@\or\or twenty\or thirty\or forty\or fifty\or sixty\or
seventy\or eighty\or ninety\fi
\ifnum\count@@@=\z@\else-\cardnine@\count@@@\fi
\fi
\fi
\fi
\fi}
\def\ordnine@#1{\ifcase#1\or first\or second\or third\or fourth\or fifth\or
sixth\or seventh\or eighth\or ninth\fi}
\newcount\count@@@@
\def\ordsuffix@{\count@@@@\count@
\divide\count@\ten@
\count@@@\count@\count@@\count@
\divide\count@@\ten@\multiply\count@@\ten@
\advance\count@@@-\count@@
\ifnum\count@@@=\@ne th%
\else
\count@@@\count@@@@
\count@@\count@@@@
\divide\count@@\ten@\multiply\count@@\ten@
\advance\count@@@-\count@@
\ifcase\count@@@ th\or st\or nd\or rd\else th\fi
\fi}
\def\nordinal#1{\count@#1\relax\number\count@\ordsuffix@}
\def\spordinal#1{\count@#1\relax\number\count@$^{\text{\ordsuffix@}}$}
\def\ordinal#1{\count@#1\relax
\ifnum\count@>99 \number\count@\ordsuffix@
\else
\ifnum\count@=\z@ zeroth%
\else
\ifnum\count@<\ten@\ordnine@\count@
\else
\ifnum\count@<20 \advance\count@-\ten@
\ifcase\count@ tenth\or eleventh\or twelfth\or thirteenth\or
fourteenth\or fifteenth\or sixteenth\or seventeenth\or eighteenth\or
nineteenth\fi
\else
\count@@\count@
\divide\count@\ten@\multiply\count@\ten@
\count@@@\count@@\advance\count@@@-\count@
\divide\count@\ten@
\ifcase\count@\or\or twent\or thirt\or fort\or fift\or sixt\or sevent\or
eight\or ninet\fi
\ifnum\count@@@=\z@ ieth\else y-\ordnine@\count@@@\fi
\fi
\fi
\fi
\fi}
\font@\tensmc=cmcsc10
\textonlyfont@\smc\tensmc
\newtoks\noexpandtoks@
\noexpandtoks@{\let\arabic\relax\let\alph\relax\let\Alph\relax
\let\roman\relax\let\Roman\relax\let\fnsymbol\relax\let\rm\relax
\let\it\relax\let\bf\relax\let\sl\relax\let\smc\relax
\let\/\relax\let\null\relax}
\def\noexpands@{\the\noexpandtoks@}
\def\Nonexpanding#1{\global\noexpandtoks@
\expandafter{\the\noexpandtoks@\let#1\relax}}
\def\prevanish@{\saveskip@\z@\ifhmode\saveskip@\lastskip\unskip\fi}
\def\postvanish@{\ifdim\saveskip@>\z@\hskip\saveskip@\fi\FN@\postvanish@@}
\def\postvanish@@{\DN@.{}%
\ifx\next\space@\ifdim\saveskip@>\z@\DN@. {}\fi\fi\next@.}
\def\invisible#1{\prevanish@\ignorespaces#1\unskip\postvanish@}
\def\vanishlist@{\\\invisible}
\let\noindent@\noindent
\def\noindent{\par\noindent@\FN@\pretendspace@}
\def\pretendspace@{\ismember@\vanishlist@\next
\iftest@\nobreak\hskip-\p@\hskip\p@\fi}
\let\flushpar\noindent
\newtoks\everypartoks@
\def\noindent@@{\par\everypartoks@\expandafter{\the\everypar}\everypar{}%
\noindent@\everypar\expandafter{\the\everypartoks@}}
\def\page{\Err@{\noexpand\page has no meaning by itself}}
\let\page@C\pageno
\let\page@P\empty
\let\page@Q\empty
\def\page@S#1{#1\/}
\def\page@F{\rm}
\def\page@N{\arabic} % cannot be \let
\newif\ifindexing@
\def\indexfile{\ifindexing@\else
\alloc@@7\write\chardef\sixt@@n\ndx@
\immediate\openout\ndx@=\jobname.ndx
\global\indexing@true\fi}
\global\advance\insc@unt\m@ne
\ch@ck0\insc@unt\count
\ch@ck1\insc@unt\dimen
\ch@ck2\insc@unt\skip
\ch@ck4\insc@unt\box
\allocationnumber\insc@unt
\global\chardef\margin@\allocationnumber
\dimen\margin@\maxdimen
\count\margin@\z@
\skip\margin@\z@
\newif\ifindexproofing@
\def\indexproofing{\indexproofing@true}
\def\noindexproofing{\indexproofing@false}
\def\unmacro@#1:#2->#3\unmacro@{\def\macpar@{#2}\def\macdef@{#3}}
\def\starparts@#1{\def\stari@{#1}\def\starii@{#1}\let\stariii@\empty
\test@false
\DN@##1*##2##3\next@{\ifx\starparts@##2\test@false\else\test@true\fi}%
\next@#1*\starparts@\next@
\iftest@\DN@{\starparts@@#1\starparts@@}\else\let\next@\relax\fi\next@}
\def\starparts@@#1*#2\starparts@@{\def\starii@{#1}\def\stariii@{*#2}}
\def\windex@{\ifindexing@
\expandafter\unmacro@\meaning\stari@\unmacro@
\edef\macdef@{\string"\macdef@\string"}%
\edef\next@{\write\ndx@{\macdef@}}\next@
\write\ndx@{{\number\pageno}{\page@N}{\page@P}{\page@Q}}%
\ifindexproofing@
\ifx\stariii@\empty\else
\expandafter\unmacro@\meaning\stariii@\unmacro@\fi
\insert\margin@{\hbox{\rm\vrule\height9\p@\depth2\p@\width\z@\starii@
\ifx\stariii@\empty\else\tt\macdef@\fi}}\fi}
\catcode`\"=\active
\def"{\FN@\quote@}
\def\quote@{\ifx\next"\expandafter\quote@@\else\expandafter\quote@@@\fi}
\def\quote@@@#1"{\starparts@{#1}\starii@\windex@}
\def\quote@@"#1"{\prevanish@\starparts@{#1}\windex@\FN@\quote@@@@}
\def\quote@@@@{\ifx\next"\DN@"{\postvanish@}\else
\let\next@\postvanish@\fi\next@}
\rightadd@"\to\vanishlist@
\def\idefine#1{\DN@{#1}\DNii@{\noexpand#1}%
\afterassignment\idefine@\def\nextiii@}
\def\idefine@{\ifindexing@
\expandafter\let\next@\nextiii@
\expandafter\unmacro@\meaning\nextiii@\unmacro@
\immediate\write\ndx@{\noexpand\define\nextii@\macpar@{\macdef@}}\fi}
\def\iabbrev*#1#2{\ifindexing@\toks@{#2}%
\immediate\write\ndx@{\noexpand\abbrev*\noexpand#1{\the\toks@}}\fi}
\newread\laxread@
\newwrite\laxwrite@
\let\fnpages@\empty
\def\Finit@#1#2\Finit@{\let\nextii@#1\def\nextiii@{#2}}
\catcode`\~=11
\def\getparts@ @#1~#2~#3~#4~#5~#6{\def\nextiv@{#1}%
\def\nextiii@{#2~#3~#4~#5~}\count@#6\relax}
\newif\ifdocument@
\def\document{\ifdocument@\else\global\document@true
\let\fontlist@\empty
\immediate\openin\laxread@=\jobname.lax\relax
{\endlinechar\m@ne\noexpands@\catcode`\@=11 \catcode`\~=11
\loop\ifeof\laxread@\else
\read\laxread@ to\next@
\ifx\next@\empty
\else
\expandafter\Finit@\next@\Finit@
\if\nextii@ F%
\expandafter\rightadd@\nextiii@\to\fnpages@
\else
\expandafter\getparts@\next@
\edef\next@{\gdef\csname\nextiv@ @L\endcsname{\nextiii@\number\count@}}%
\next@
\fi
\fi
\repeat}%
\immediate\closein\laxread@
\immediate\openout\laxwrite@=\jobname.lax\relax\fi}
\let\thelabel@\relax
\def\thelabels@{\thelabel@ ~\thelabel@@ ~\thelabel@@@ ~\thelabel@@@@ ~}
\def\label#1{\prevanish@
\ifx\thelabel@\relax
\Err@{There's nothing here to be labelled}%
\else
{\noexpands@
\expandafter\ifx\csname#1@L\endcsname\relax
\expandafter\xdef\csname#1@L\endcsname{\thelabels@0}%
\immediate\write\laxwrite@{@#1~\thelabels@1}%
\else
\edef\next@{@~\csname#1@L\endcsname}%
\expandafter\getparts@\next@
\ifodd\count@
\expandafter\xdef\csname#1@L\endcsname{\thelabels@0}%
\immediate\write\laxwrite@{@#1~\thelabels@1}%
\else
\Err@{Label #1 already used}%
\fi
\fi
\postvanish@}
\rightadd@\label\to\vanishlist@
\def\thepages@{\page@N{\number\page@C}~%
\page@S{\page@P\page@N{\number\page@C}\page@Q}~%
\number\page@C ~\page@P\page@N{\number\page@C}\page@Q ~}
\def\pagelabel#1{\prevanish@
\expandafter\ifx\csname#1@L\endcsname\relax
{\noexpands@
\expandafter\xdef\csname#1@L\endcsname{\thepages@2}}%
\write\laxwrite@{@#1~\thepages@3}%
\else
{\noexpands@
\edef\next@{@~\csname#1@L\endcsname}%
\expandafter\getparts@\next@
\ifodd\count@
\ifnum\count@=\@ne
\expandafter\xdef\csname#1@L\endcsname{\thelabels@2}%
\fi
\write\laxwrite@{@#1~\thepages@3}%
\else
\Err@{Label #1 already used}%
\fi
\postvanish@}
\rightadd@\pagelabel\to\vanishlist@
\newif\ifreferr@
\referr@true
\def\RefErrors{\global\referr@true}
\def\RefWarnings{\global\referr@false}
\setbox\z@\hbox{\global\count@=`^^30}
\ifnum\count@=48 \let\versionthree@\relax\fi
\def\nolabel@#1#2#3{\expandafter\ifx\csname#2@L\endcsname\relax
\ifreferr@\Err@{No \noexpand\label found for #2}\else
\W@{Warning: No \noexpand\label found for #2.}%
\ifx\versionthree@\relax\W@{l.\number\inputlineno\space ... \string#1{#2}}\fi
\fi#3\else}
\def\csL@#1{{\noexpands@\xdef\Next@{\csname#1@L\endcsname}}}
\def\ref#1{\nolabel@\ref{#1}\relax
\DNii@##1~##2\nextii@{##1}%
\csL@{#1}\expandafter\nextii@\Next@\nextii@\fi}
\def\Ref#1{\nolabel@\Ref{#1}\relax
\DNii@##1~##2~##3\nextii@{##2}%
\csL@{#1}\expandafter\nextii@\Next@\nextii@\fi}
\def\nref#1{\nolabel@\nref{#1}\relax
\DNii@##1~##2~##3~##4\nextii@{##3}%
\csL@{#1}\expandafter\nextii@\Next@\nextii@\fi}
\def\pref#1{\nolabel@\pref{#1}\relax
\DNii@##1~##2~##3~##4~##5\nextii@{##4}%
\csL@{#1}\expandafter\nextii@\Next@\nextii@\fi}
\let\pref@\pref
\def\Evaluatenref#1{\nolabel@\Evaluatenref{#1}{\gdef\Nref{-10000 }}%
\DNii@##1~##2~##3~##4\nextii@{\DNii@{##3}}%
\csL@{#1}\expandafter\nextii@\Next@\nextii@
\xdef\Nref{\nextii@}\fi}
\def\Evaluatepref#1{\nolabel@\Evaluatepref{#1}{\global\let\Pref\empty}%
\DNii@##1~##2~##3~##4~##5\nextii@{\DNii@{##4}}%
\csL@{#1}\expandafter\nextii@\Next@\nextii@
\xdef\Pref{\nextii@}\fi}
\def\readlax#1{\immediate\openin\laxread@=#1.lax\relax
\ifeof\laxread@\W@{}\W@{File #1.lax not found.}\W@{}\fi
{\endlinechar\m@ne\noexpands@\catcode`\@=11 \catcode`\~=11
\loop\ifeof\laxread@\else
\read\laxread@ to\nextv@
\ifx\nextv@\empty
\else
\expandafter\Finit@\nextv@\Finit@
\ifx\nextii@ F%
\else
\expandafter\getparts@\nextv@
\expandafter\ifx\csname\nextiv@ @L\endcsname\relax
\edef\next@{\gdef\csname\nextiv@ @L\endcsname
{\nextiii@\ifnum\count@=\@ne0\else2\fi}}%
\next@
\else
\Err@{Label \nextiv@\space in #1.lax already used}%
\fi
\fi
\fi
\repeat}%
\immediate\closein\laxread@}
\catcode`\~=\active
\def\docstyle#1{\input #1.st\relax}
\def\predocstyle#1{\input #1.stf\relax}
\def\postdocstyle#1{\input #1.stb\relax}
\def\FNSSP@{\FNSS@\pretendspace@}
\everydisplay{\csname displaymath \endcsname}
\expandafter\def\csname displaymath \endcsname#1$${#1$$\FNSSP@}
\def\locallabel@{\let\thelabel@\Thelabel@\let\thelabel@@\Thelabel@@
\let\thelabel@@@\Thelabel@@@\let\thelabel@@@@\Thelabel@@@@}
\newcount\tag@C
\tag@C\z@
\let\tag@P\empty
\let\tag@Q\empty
\def\tag@S#1{{\rm(}{#1\/}{\rm)}}
\let\tag@N\arabic
\def\tag@F{\rm}
\def\maketag@{\FN@\maketag@@}
\def\maketag@@{\ifx\next\relax\DN@\relax{\FN@\maketag@@}\else
\ifx\next"\let\next@\maketag@@@\else
\let\next@\maketag@@@@\fi\fi\next@}
\def\xdefThelabel@#1{\xdef\Thelabel@{#1{\Thelabel@@@}}}
\def\xdefThelabel@@#1{\xdef\Thelabel@@{#1{\Thelabel@@@@}}}
\def\maketag@@@@#1\maketag@{\global\advance\tag@C\@ne
{\noexpands@
\xdef\Thelabel@@@{\number\tag@C}%
\xdefThelabel@\tag@N
\xdef\Thelabel@@@@{\ifmathtags@$\tag@P\Thelabel@\tag@Q$\else
\tag@P\Thelabel@\tag@Q\fi}%
\xdefThelabel@@\tag@S
\locallabel@
\hbox{\tag@F\thelabel@@}%
\def\Qlabel@#1{{\noexpands@\xdef\Thelabel@@{#1}%
\let\style\empty\xdef\Thelabel@@@@{#1}%
\let\pre\empty\let\post\empty\xdef\Thelabel@{#1}%
\let\numstyle\empty\xdef\Thelabel@@@{#1}}}
\def\maketag@@@"#1"#2\maketag@{%
{\let\pre\tag@P\let\post\tag@Q\let\style\tag@S\let\numstyle\tag@N
\hbox{\tag@F#1}%
\noexpands@
\Qlabel@{#1}%
\locallabel@
\def\align@{\inalign@true\inany@true
\vspace@\allowdisplaybreak@\displaybreak@\intertext@
\def\tag{\global\tag@true\ifnum\and@=\z@
\DN@{&\omit\global\rwidth@\z@&\relax}\else
\DN@{&\relax}\fi\next@}%
\iftagsleft@\DN@{\csname align \endcsname}\else
\DN@{\csname align \space\endcsname}\fi\next@}
\def\noset@{\def\Offset##1##2{\prevanish@\postvanish@}%
\def\Reset##1##2{\prevanish@\postvanish@}}
\def\measure@#1\endalign{\global\lwidth@\z@\global\rwidth@\z@
\global\maxlwidth@\z@\global\maxrwidth@\z@
\global\and@\z@
\setbox\z@\vbox
{\noset@\everycr{\noalign{\global\tag@false\global\and@\z@}}\Let@
\halign{\setboxz@h{$\m@th\displaystyle{\@lign##}$}%
\global\lwidth@\wdz@
\ifdim\lwidth@>\maxlwidth@\global\maxlwidth@\lwidth@\fi
\global\advance\and@\@ne
&\setboxz@h{$\m@th\displaystyle{{}\@lign##}$}\global\rwidth@\wdz@
\ifdim\rwidth@>\maxrwidth@\global\maxrwidth@\rwidth@\fi
\global\advance\and@\@ne
&\Tag@\eat@{##}\crcr#1\crcr}}%
\totwidth@\maxlwidth@\advance\totwidth@\maxrwidth@}
\def\prepost@{\global\let\tag@P@\tag@P\global\let\tag@Q@\tag@Q}
\def\reprepost@{\let\tag@P\tag@P@\let\tag@Q\tag@Q@}
\expandafter\def\csname align \space\endcsname#1\endalign
{\measure@#1\endalign\global\and@\z@
\ifingather@\everycr{\noalign{\global\and@\z@}}\else\displ@y@\fi
\Let@\tabskip\centering@
\halign to\displaywidth
{\hfil\strut@\setboxz@h{$\m@th\displaystyle{\@lign##\prepost@}$}%
\boxz@\global\advance\and@\@ne
\tabskip\z@skip
&\setboxz@h{$\m@th\displaystyle{{}\@lign##\prepost@}$}%
\global\rwidth@\wdz@\boxz@\hfil\global\advance\and@\@ne
\tabskip\centering@
&\setboxz@h{\@lign\strut@\reprepost@\maketag@##\maketag@}%
\dimen@\displaywidth\advance\dimen@-\totwidth@
\divide\dimen@\tw@\advance\dimen@\maxrwidth@\advance\dimen@-\rwidth@
\ifdim\dimen@<\tw@\wdz@\llap{\vtop{\normalbaselines\null\boxz@}}%
\else\llap{\boxz@}\fi
\tabskip\z@skip
\crcr#1\crcr
\black@\totwidth@}}
\expandafter\def\csname align \endcsname#1\endalign{\measure@#1\endalign
\global\and@\z@
\ifdim\totwidth@>\displaywidth\let\displaywidth@\totwidth@\else
\let\displaywidth@\displaywidth\fi
\ifingather@\everycr{\noalign{\global\and@\z@}}\else\displ@y@\fi
\Let@\tabskip\centering@\halign to\displaywidth
{\hfil\strut@\setboxz@h{$\m@th\displaystyle{\@lign##\prepost@}$}%
\global\lwidth@\wdz@\global\lineht@\ht\z@
\boxz@\global\advance\and@\@ne
\tabskip\z@skip&\setboxz@h{$\m@th\displaystyle{{}\@lign##\prepost@}$}%
\ifdim\ht\z@>\lineht@\global\lineht@\ht\z@\fi
\boxz@\hfil\global\advance\and@\@ne
\tabskip\centering@&\kern-\displaywidth@
\setboxz@h{\@lign\strut@\reprepost@\maketag@##\maketag@}%
\dimen@\displaywidth\advance\dimen@-\totwidth@
\divide\dimen@\tw@\advance\dimen@\maxlwidth@\advance\dimen@-\lwidth@
\ifdim\dimen@<\tw@\wdz@
\rlap{\vbox{\normalbaselines\boxz@\vbox to\lineht@{}}}\else
\rlap{\boxz@}\fi
\tabskip\displaywidth@\crcr#1\crcr\black@\totwidth@}}
\def\attag@#1{\let\Maketag@\maketag@\let\TAG@\Tag@
\let\Prepost@\prepost@\let\Reprepost@\reprepost@
\let\Tag@\relax\let\maketag@\relax
\let\prepost@\relax\let\reprepost@\relax
\ifmeasuring@
\def\llap@##1{\setboxz@h{##1}\hbox to\tw@\wdz@{}}%
\def\rlap@##1{\setboxz@h{##1}\hbox to\tw@\wdz@{}}%
\else\let\llap@\llap\let\rlap@\rlap\fi
\toks@{\hfil\strut@
$\m@th\displaystyle{\@lign\the\hashtoks@\prepost@}$%
\tabskip\z@skip\global\advance\and@\@ne&
$\m@th\displaystyle{{}\@lign\the\hashtoks@\prepost@}$\hfil
\ifxat@\tabskip\centering@\fi\global\advance\and@\@ne}%
\iftagsleft@
\toks@@{\tabskip\centering@&\Tag@\kern-\displaywidth
\rlap@{\@lign\reprepost@\maketag@\the\hashtoks@\maketag@}%
\global\advance\and@\@ne\tabskip\displaywidth}\else
\toks@@{\tabskip\centering@&\Tag@\llap@{\@lign\reprepost@\maketag@
\the\hashtoks@\maketag@}\global\advance\and@\@ne\tabskip\z@skip}\fi
\atcount@#1\relax\advance\atcount@\m@ne
\loop\ifnum\atcount@>\z@
\toks@\expandafter{\the\toks@&\hfil$\m@th\displaystyle{\@lign
\the\hashtoks@\prepost@}$\global\advance\and@\@ne
\tabskip\z@skip
&$\m@th\displaystyle{{}\@lign\the\hashtoks@\prepost@}$\hfil\ifxat@
\tabskip\centering@\fi\global\advance\and@\@ne}\advance\atcount@\m@ne
\repeat
\edef\preamble@{\the\toks@\the\toks@@}%
\edef\preamble@@{\preamble@}%
\let\maketag@\Maketag@\let\Tag@\TAG@
\let\prepost@\Prepost@\let\reprepost@\Reprepost@}
\def\unlabel@{\def\label##1{\prevanish@\postvanish@}%
\def\pagelabel##1{\prevanish@\postvanish@}}
\newcount\tag@CC
\expandafter\def\csname alignat \endcsname#1#2\endalignat
{\inany@true\xat@false
\def\tag{\global\tag@true
\count@#1\relax\multiply\count@\tw@\advance\count@\m@ne
\gdef\tag@{&}%
\loop\ifnum\count@>\and@\xdef\tag@{&\omit\tag@}%
\advance\count@\m@ne\repeat
\tag@\relax}%
\vspace@\allowdisplaybreak@\displaybreak@\intertext@
\displ@y@\measuring@true\tag@CC\tag@C
\setbox\savealignat@\hbox{\noset@\unlabel@$\m@th\displaystyle\Let@
\attag@{#1}\vbox{\halign{\span\preamble@@\crcr#2\crcr}}$}%
\measuring@false
\Let@\attag@{#1}\tag@C\tag@CC
\tabskip\centering@\halign to\displaywidth
{\span\preamble@@\crcr#2\crcr\black@{\wd\savealignat@}}}
\expandafter\def\csname xalignat \endcsname#1#2\endxalignat
{\inany@true\xat@true
\def\tag{\global\tag@true
\count@#1\relax\multiply\count@\tw@\advance\count@\m@ne
\gdef\tag@{&}%
\loop\ifnum\count@>\and@\xdef\tag@{&\omit\tag@}%
\advance\count@\m@ne\repeat
\tag@\relax}%
\vspace@\allowdisplaybreak@\displaybreak@\intertext@
\displ@y@\measuring@true\tag@CC\tag@C
\setbox\savealignat@\hbox{\noset@\unlabel@$\m@th\displaystyle\Let@
\attag@{#1}\vbox{\halign{\span\preamble@@\crcr#2\crcr}}$}%
\measuring@false\Let@\attag@{#1}\tag@C\tag@CC
\tabskip\centering@\halign to\displaywidth
{\span\preamble@@\crcr#2\crcr\black@{\wd\savealignat@}}}
\def\gather{\RIfMIfI@\DN@{\onlydmatherr@\gather}\else
\ingather@true\inany@true\def\tag{&\relax}%
\vspace@\allowdisplaybreak@\displaybreak@\intertext@
\displ@y\Let@
\iftagsleft@\DN@{\csname gather \endcsname}\else
\DN@{\csname gather \space\endcsname}\fi\fi
\else\DN@{\onlydmatherr@\gather}\fi\next@}
\def\exstring@{\expandafter\eat@\string}
\def\newcounter#1{\define#1{}%
\edef\next@{\def\noexpand#1{\futurelet\noexpand\next
\csname\exstring@#1@Z\endcsname}}\next@
\edef\next@{\def\csname\exstring@#1@Z\endcsname
{\global\advance\csname\exstring@#1@C\endcsname\@ne
{\csname\exstring@#1@F\endcsname\csname\exstring@#1@S\endcsname
{\csname\exstring@#1@P\endcsname\csname\exstring@#1@N\endcsname
{\noexpand\number\csname\exstring@#1@C\endcsname}%
\csname\exstring@#1@Q\endcsname}}%
\noexpand\ifx\noexpand\next\noexpand\label
\def\noexpand\next@\noexpand\label########1{{\noexpand\noexpands@
\xdef\noexpand\Thelabel@{\csname\exstring@#1@N\endcsname
{\noexpand\number\csname\exstring@#1@C\endcsname}}%
\xdef\noexpand\Thelabel@@@{\noexpand\number
\csname\exstring@#1@C\endcsname}%
\xdef\noexpand\Thelabel@@{\csname\exstring@#1@S\endcsname
{\csname\exstring@#1@P\endcsname
\csname\exstring@#1@N\endcsname
{\noexpand\number\csname\exstring@#1@C\endcsname}%
\csname\exstring@#1@Q\endcsname}}%
\xdef\noexpand\Thelabel@@@@{\csname\exstring@#1@P\endcsname
\csname\exstring@#1@N\endcsname
{\noexpand\number\csname\exstring@#1@C\endcsname}%
\csname\exstring@#1@Q\endcsname}}%
{\noexpand\locallabel@\noexpand\label{########1}}}%
\noexpand\else\let\noexpand\next@\relax\noexpand\fi\noexpand\next@}}\next@
\expandafter\newcount@\csname\exstring@#1@C\endcsname
\expandafter\let\csname\exstring@#1@N\endcsname\arabic
\expandafter\def\csname\exstring@#1@S\endcsname##1{##1\/}%
\expandafter\let\csname\exstring@#1@P\endcsname\empty
\expandafter\let\csname\exstring@#1@Q\endcsname\empty
\expandafter\def\csname\exstring@#1@F\endcsname{\rm}%
\def\HASH@#1#2{\ifnum#2=\z@\else
\edef\next@{\toks@{\the\toks@\the\hashtoks@#2}%
\toks@@{\the\toks@@{\the\hashtoks@#2}}}\next@\expandafter\HASH@\fi}
\def\HASH@@{\toks@{}\toks@@{}\expandafter\HASH@\macpar@00}
\def\usecounter#1#2{\expandafter\ifx\csname\exstring@#1@Z\endcsname
\relax\Err@{\noexpand#1not created with \string\newcounter}\fi
\expandafter\let\csname\exstring@#1@@Z\endcsname\relax
\expandafter\let\csname\exstring@#1@@Z@\endcsname\relax
\expandafter\let\csname\exstring@#1@@Z@@\endcsname\relax
\edef\next@{\def\noexpand#2{\futurelet\noexpand\next
\csname\exstring@#1@@Z\endcsname}}\next@
\edef\next@{\def\csname\exstring@#1@@Z\endcsname{\noexpand\ifx
\noexpand\next\noexpand\label\def\noexpand\next@\noexpand\label
########1{\csname\exstring@#1@@Z@\endcsname
{\noexpand#1\noexpand\label{########1}}}%
\noexpand\else\noexpand\ifx\noexpand\next
\noexpand"\def\noexpand\next@\noexpand"########1\noexpand"%
{\csname\exstring@#1@@Z@\endcsname{{\expandafter\noexpand
\csname\exstring@#1@F\endcsname
\let\noexpand\pre\expandafter\noexpand\csname\exstring@#1@P\endcsname
\let\noexpand\post\expandafter\noexpand\csname\exstring@#1@Q\endcsname
\let\noexpand\style\expandafter\noexpand\csname\exstring@#1@S\endcsname
\let\noexpand\numstyle\expandafter\noexpand\csname\exstring@#1@N\endcsname
########1}}}\noexpand\else
\def\noexpand\next@{\csname\exstring@#1@@Z@\endcsname{\noexpand#1}}%
\noexpand\fi\noexpand\fi\noexpand\next@}}\next@
\def\next@{\expandafter\expandafter\expandafter\unmacro@\expandafter
\meaning\csname\exstring@#1@@Z@@\endcsname\unmacro@
\HASH@@
\edef\next@{\def\csname\exstring@#1@@Z@\endcsname\the\toks@{%
\expandafter\noexpand\csname\exstring@#1@@Z@@\endcsname\the\toks@@
\noexpand\FNSSP@}}\next@}%
\afterassignment\next@
\expandafter\def\csname\exstring@#1@@Z@@\endcsname}
\def\listbi@{\penalty50 \medskip}
\def\listbii@{\penalty100 \smallskip}
\let\listbiii@\relax
\let\listbiv@\relax
\let\listbv@\relax
\def\listmi@{\advance\leftskip30\p@\relax}
\let\listmii@\listmi@
\let\listmiii@\listmi@
\let\listmiv@\listmi@
\let\listmv@\listmi@
\def\itemi@#1{\noindent@@\llap{#1\hskip5\p@}}
\let\itemii@\itemi@
\let\itemiii@\itemi@
\let\itemiv@\itemi@
\let\itemv@\itemi@
\def\liste@{\penalty-50 \medskip}
\def\listei@{\penalty-100 \smallskip}
\let\listeii@\relax
\let\listeiii@\relax
\let\listeiv@\relax
\expandafter\newcount\csname list@C1\endcsname
\csname list@C1\endcsname\z@
\expandafter\newcount\csname list@C2\endcsname
\csname list@C2\endcsname\z@
\expandafter\newcount\csname list@C3\endcsname
\csname list@C3\endcsname\z@
\expandafter\newcount\csname list@C4\endcsname
\csname list@C4\endcsname\z@
\expandafter\newcount\csname list@C5\endcsname
\csname list@C5\endcsname\z@
\expandafter\let\csname list@P1\endcsname\empty
\expandafter\let\csname list@P2\endcsname\empty
\expandafter\let\csname list@P3\endcsname\empty
\expandafter\let\csname list@P4\endcsname\empty
\expandafter\let\csname list@P5\endcsname\empty
\expandafter\let\csname list@Q1\endcsname\empty
\expandafter\let\csname list@Q2\endcsname\empty
\expandafter\let\csname list@Q3\endcsname\empty
\expandafter\let\csname list@Q4\endcsname\empty
\expandafter\let\csname list@Q5\endcsname\empty
\expandafter\def\csname list@S1\endcsname#1{{\rm(}{#1\/}{\rm)}}
\expandafter\def\csname list@S2\endcsname#1{{\rm(}{#1\/}{\rm)}}
\expandafter\def\csname list@S3\endcsname#1{{\rm(}{#1\/}{\rm)}}
\expandafter\def\csname list@S4\endcsname#1{{\rm(}{#1\/}{\rm)}}
\expandafter\def\csname list@S5\endcsname#1{{\rm(}{#1\/}{\rm)}}
\expandafter\let\csname list@N1\endcsname\arabic
\expandafter\let\csname list@N2\endcsname\arabic
\expandafter\let\csname list@N3\endcsname\arabic
\expandafter\let\csname list@N4\endcsname\arabic
\expandafter\let\csname list@N5\endcsname\arabic
\expandafter\def\csname list@F1\endcsname{\rm}
\expandafter\def\csname list@F2\endcsname{\rm}
\expandafter\def\csname list@F3\endcsname{\rm}
\expandafter\def\csname list@F4\endcsname{\rm}
\expandafter\def\csname list@F5\endcsname{\rm}
\newcount\listlevel@
\listlevel@\z@
\def\list@@C{\csname list@C\number\listlevel@\endcsname}
\def\list@@P{\csname list@P\number\listlevel@\endcsname}
\def\list@@Q{\csname list@Q\number\listlevel@\endcsname}
\def\list@@S{\csname list@S\number\listlevel@\endcsname}
\def\list@@N{\csname list@N\number\listlevel@\endcsname}
\def\list@@F{\csname list@F\number\listlevel@\endcsname}
\newif\iffirstitemi@
\newif\iffirstitemii@
\newif\iffirstitemiii@
\newif\iffirstitemiv@
\newif\iffirstitemv@
\def\Firstitem@true{\csname firstitem\romannumeral\listlevel@
@true\endcsname}
\def\Firstitem@false{\csname firstitem\romannumeral\listlevel@
@false\endcsname}
\def\Listm@{\csname listm\romannumeral\listlevel@ @\endcsname}
\def\Item@{\csname item\romannumeral\listlevel@ @\endcsname}
\def\Liste@{\csname liste\romannumeral\listlevel@ @\endcsname}
\newif\iflistcontinue@
\def\keepitem{\listcontinue@true}
\newcount\list@C@
\def\list{%
\iflistcontinue@\csname list@C1\endcsname\csname list@C@\endcsname\fi
\global\csname list@C2\endcsname\z@
\global\csname list@C3\endcsname\z@
\global\csname list@C4\endcsname\z@
\global\csname list@C5\endcsname\z@
\begingroup
\firstitemi@true
\listlevel@\@ne
\def\item{\FN@\item@}%
\FN@\list@}
\Invalid@\runinitem
\def\list@{\ifx\next\par
\DN@\par{\FN@\list@}\else
\ifx\next\runinitem
\DN@\runinitem{\FN@\runinitem@}\else
\DN@{\par\dimen@\parskip\parskip\dimen@}\fi\fi\next@}
\newif\ifoutlevel@
\newif\ifrunin@
\def\item@{%
\ifoutlevel@\Liste@\outlevel@false\fi
\ifrunin@\runin@false\par
\dimen@\parskip\parskip\dimen@
\Listm@\fi
\iffirstitemi@\listbi@\listmi@\firstitemi@false\else\par\fi
\iffirstitemii@\listbii@\listmii@\firstitemii@false\else\par\fi
\iffirstitemiii@\listbiii@\listmiii@\firstitemiii@false\else\par\fi
\iffirstitemiv@\listbiv@\listmiv@\firstitemiv@false\else\par\fi
\iffirstitemv@\listbv@\listmv@\firstitemv@false\else\par\fi
\DN@"##1"{{\let\pre\list@@P\let\post\list@@Q
\let\style\list@@S\let\numstyle\list@@N
\vskip-\parskip
\Item@{\list@@F##1}%
\noexpands@
\Qlabel@{##1}}%
\locallabel@
\FNSSP@}%
\DNii@{\global\advance\list@@C\@ne
{\noexpands@
\xdef\Thelabel@@@{\number\list@@C}%
\xdefThelabel@\list@@N
\xdef\Thelabel@@@@{\list@@P\Thelabel@\list@@Q}%
\xdefThelabel@@\list@@S
\locallabel@
\vskip-\parskip
\Item@{\list@@F\thelabel@@}%
\FN@\pretendspace@}%
\ifx\next"\expandafter\next@\else\expandafter\nextii@\fi}
\def\runinitem@{%
\runin@true
\Firstitem@false
\DN@"##1"{{\let\pre\list@@P\let\post\list@@Q
\let\style\list@@S\let\numstyle\list@@N
\unskip\space{\list@@F##1} %
\noexpands@
\Qlabel@{##1}}%
\locallabel@
\ignorespaces}%
\DNii@{\global\advance\list@@C\@ne
{\noexpands@
\xdef\Thelabel@@@{\number\list@@C}%
\xdefThelabel@\list@@N
\xdef\Thelabel@@@@{\list@@P\Thelabel@\list@@Q}%
\xdefThelabel@@\list@@S
}%
\locallabel@
\unskip\space{\list@@F\thelabel@@} }%
\ifx\next"\expandafter\next@\else\expandafter\nextii@\fi}
\def\inlevel{\ifnum\listlevel@=5
\DN@{\Err@{Already 5 levels down}}\else
\DN@{\begingroup\advance\listlevel@\@ne
\Firstitem@true\FN@\inlevel@}\fi\next@}
\def\inlevel@{\ifx\next\par
\DN@\par{\FN@\inlevel@}\else
\ifx\next\runinitem
\DN@\runinitem{\FN@\runinitem@}\else
\let\next@\relax\fi\fi\next@}
\def\outlevel{\ifnum\listlevel@=\@ne
\Err@{At top level}\else
\par\global\list@@C\z@\endgroup\outlevel@true\fi}
\def\endlist{%
\expandafter\global\csname list@C@\endcsname\csname list@C1\endcsname
\par
\global\toks\@ne{}\count@\listlevel@
{\loop
\ifnum\count@>\z@\global\toks\@ne\expandafter{\the\toks\@ne\endgroup}%
\advance\count@\m@ne
\repeat}%
\the\toks\@ne
\liste@
\listcontinue@false\global\csname list@C1\endcsname\z@
\vskip-\parskip
\noindent@@
\FN@\pretendspace@}
\newif\iffirstdescribe@
\def\describe{\par
\begingroup\firstdescribe@true
\def\item##1{%
\iffirstdescribe@\penalty50 \medskip\vskip-\parskip
\firstdescribe@false\else\par\fi
\noindent@@\hangindent2pc\hangafter\@ne
{\bf##1}\hskip.5em}}
\def\enddescribe{\par\penalty-50 \medskip\vskip-\parskip\endgroup}
\Invalid@\pullin
\Invalid@\pullinmore
\newif\iffirstpull@
\def\margins{\par\begingroup\firstpull@true
\def\pullin##1##2{\par
\iffirstpull@\firstpull@false\else\endgroup\fi
\begingroup\DN@{##1}%
\ifx\next@\empty\leftskip\z@\else\ifx\next@\space\leftskip\z@
\else\leftskip##1\fi\fi
\DN@{##2}\ifx\next@\empty\rightskip\z@\else\ifx\next@\space
\rightskip\z@\else\rightskip##2\fi\fi\ignorespaces}%
\def\pullinmore##1##2{\par
\xdef\Next@{\leftskip\the\leftskip\relax\rightskip\the\rightskip\relax}%
\iffirstpull@\firstpull@false\else\endgroup\fi
\begingroup\Next@
\DN@{##1}%
\ifx\next@\empty\else\ifx\next@\space\else\advance\leftskip##1\fi\fi
\DN@{##2}\ifx\next@\empty\else\ifx\next@\space\else
\advance\rightskip##2\fi\fi\ignorespaces}}
\def\endmargins{\par\endgroup\endgroup}
\newif\ifnopunct@
\newif\ifnospace@
\newif\ifoverlong@
\let\nofrillslist@\empty
\let\overlonglist@\empty
\def\nopunct{\nopunct@true\FN@\nopunct@}
\def\nospace{\nospace@true\FN@\nospace@}
\def\overlong{\overlong@true\FN@\overlong@}
\def\nopunct@{\ifx\next\nospace
\DN@\nospace{\nospace@true\FN@\nopnos@}\else\ifx\next\overlong
\DN@\overlong{\overlong@true\FN@\nopol@}\else
\let\next@\nopunct@@\fi\fi\next@}
\def\nopunct@@#1{\ismember@\nofrillslist@#1%
\iftest@\let\next@#1\else
\DN@{\nopunct@false\Err@{\noexpand\nopunct can't be used with
\string#1}#1}\fi\next@}
\def\nospace@{\ifx\next\nopunct
\DN@\nopunct{\nopunct@true\FN@\nopnos@}\else\ifx\next\overlong
\DN@\overlong{\overlong@true\FN@\nosol@}\else
\let\next@\nospace@@\fi\fi\next@}
\def\nospace@@#1{\ismember@\nofrillslist@#1%
\iftest@\let\next@#1\else
\DN@{\nospace@false\Err@{\noexpand\nospace can't be used with
\string#1}#1}\fi\next@}
\def\overlong@{\ifx\next\nopunct
\DN@\nopunct{\nopunct@true\FN@\nopol@}\else\ifx\next\nospace
\DN@\nospace{\nospace@true\FN@\nosol@}\else
\let\next@\overlong@@\fi\fi\next@}
\def\overlong@@#1{\ismember@\overlonglist@#1%
\iftest@\let\next@#1\else
\DN@{\overlong@false\Err@{\noexpand\overlong can't be used with
\string#1}#1}\fi\next@}
\def\nopnos@{\ifx\next\overlong
\DN@\overlong{\overlong@true\nopnosol@}\else
\let\next@\nopnos@@\fi\next@}
\def\nopol@{\ifx\next\nospace
\DN@\nospace{\nospace@true\nopnosol@}\else
\let\next@\nopol@@\fi\next@}
\def\nosol@{\ifx\next\nopunct
\DN@\nopunct{\nopunct@true\nopnosol@}\else
\let\next@\nosol@@\fi\next@}
\def\nopnos@@#1{\ismember@\nofrillslist@#1%
\iftest@\let\next@#1\else
\DN@{\nopunct@false\nospace@false
\Err@{\noexpand\nopunct\noexpand\nospace
can't be used with \string#1}#1}\fi\next@}
\def\testii@#1{\ismember@\nofrillslist@#1%
\iftest@\let\nextiii@ T\else\let\nextiii@ F\fi
\ismember@\overlonglist@#1%
\iftest@\let\nextiv@ T\else\let\nextiv@ F\fi
\test@false\if\nextiii@ T\if\nextiv@ T\test@true\fi\fi}
\def\nopol@@#1{\testii@{#1}%
\iftest@\let\next@#1%
\else\DN@{\if\nextiii@ T\else\nopunct@false\fi
\if\nextiv@ T\else\overlong@false\fi
\Err@{\if\nextiii@ T\else\noexpand\nopunct\fi
\if\nextiv@ T\else\noexpand\overlong\fi can't be used
with \string#1}#1}\fi\next@}
\def\nosol@@#1{\testii@{#1}%
\iftest@\let\next@#1%
\else\DN@{\if\nextiii@ T\else\nospace@false\fi
\if\nextiv@ T\else\overlong@false\fi
\Err@{\if\nextiii@ T\else\noexpand\nospace\fi
\if\nextiv@ T\else\noexpand\overlong\fi can't be used
with \string#1}#1}\fi\next@}
\def\nopnosol@#1{\testii@{#1}%
\iftest@\let\next@#1%
\else\DN@{\if\nextiii@ T\else\nopunct@false\nospace@false\fi
\if\nextiv@ T\else\overlong@false\fi
\Err@{\if\nextiii@ T\else\noexpand\nopunct\noexpand\nospace\fi
\if\nextiv@ T\else\noexpand\overlong\fi can't be used
with \string#1}#1}\fi\next@}
\def\punct@#1{\ifnopunct@\else#1\fi}
\def\addspace@#1{\ifnospace@\else#1\fi}
\def\hss@{\ifoverlong@\z@ plus\@m\p@ minus\@m\p@
\else \z@ plus\@m\p@\fi}
\rightadd@\demo\to\nofrillslist@
\newif\ifclaim@
\def\exxx@{\expandafter\expandafter\expandafter\eat@\expandafter\string}
\let\colon@:
\def\demo#1{\ifclaim@
\Err@{Previous \expandafter\noexpand\claimtype@ has
no matching \string\end\exxx@\claimtype@}%
\let\next@\relax
\else
\par
\ifdim\lastskip<\smallskipamount\removelastskip\smallskip\fi
\begingroup
\noindent@@{\smc\ignorespaces#1\unskip
\punct@{\null\colon@}\addspace@\enspace}%
\nopunct@false\nospace@false
\rm
\DN@{\FNSSP@}%
\next@}
\def\enddemo{\par\endgroup\nopunct@false\nospace@false\smallskip}
\rightadd@\claim\to\nofrillslist@
\def\claim@F{\smc}
\def\claim@@@F{\csname\exxx@\claimtype@ @F\endcsname}
\def\claimformat@#1#2#3{%
\medbreak\noindent@@{\smc#1 {\claim@@@F#2} #3%
\punct@{\null.}\addspace@\enspace}\sl}
\def\claimformat@@#1#2{\claimformat@{\ignorespaces#1\unskip}%
{\ifx\thelabel@@\empty\unskip\else\thelabel@@\fi}%
{\ignorespaces#2\unskip}%
\let\Claimformat@@\claimformat@@\FNSSP@}
\let\Claimformat@@\claimformat@@
\def\claim@@@P{\csname\exxx@\claimtype@ @P\endcsname}
\def\claim@@@Q{\csname\exxx@\claimtype@ @Q\endcsname}
\def\claim@@@S{\csname\exxx@\claimtype@ @S\endcsname}
\def\claim@@@N{\csname\exxx@\claimtype@ @N\endcsname}
\def\claim@@@C{\csname claim@C\claimclass@\endcsname}
\newcount\claim@C
\claim@C\z@
\let\claim@P\empty
\let\claim@Q\empty
\def\claim@S#1{#1\/}
\let\claim@N\arabic
\def\claim{\claim@true\let\claimclass@\empty
\def\claimtype@{\claim}\FN@\claim@}
\def\claim@{%
\ifx\next\c
\let\next@\claim@c
\else
\ifx\next"%
\let\next@\claim@q
\else
\begingroup\global\advance\claim@C\@ne
{\noexpands@
\xdef\Thelabel@@@{\number\claim@C}%
\xdefThelabel@\claim@N
\xdef\Thelabel@@@@{\claim@P\Thelabel@\claim@Q}%
\xdefThelabel@@\claim@S
}%
\locallabel@
\let\next@\Claimformat@@
\fi
\next@}
\def\claim@c\c#1{\claim@true\begingroup
\expandafter
\ifx\csname claim@C#1\endcsname\relax
\expandafter\newcount@\csname claim@C#1\endcsname
\global\csname claim@C#1\endcsname\@ne
\else
\global\advance\csname claim@C#1\endcsname\@ne
\def\claimclass@{#1}%
{\noexpands@
\xdef\Thelabel@@@{\number\claim@@@C}%
\xdefThelabel@\claim@@@N
\xdef\Thelabel@@@@{\claim@@@P\Thelabel@\claim@@@Q}%
\xdefThelabel@@\claim@@@S
\locallabel@
\FNSS@\claim@c@}
\def\claim@q"#1"{\begingroup
{\let\pre\claim@@@P\let\post\claim@@@Q
\let\style\claim@@@S\let\numstyle\claim@@@N
\noexpands@
\Qlabel@{#1}}%
\locallabel@
\FNSS@\claim@q@}
\def\claim@c@{\ifx\next"%
\global\advance\claim@@@C\m@ne\let\next@\claim@cq
\else\let\next@\Claimformat@@\fi\next@}
\def\claim@cq"#1"{{\let\pre\claim@@@P\let\post\claim@@@Q
\let\style\claim@@@S\let\numstyle\claim@@@N
\noexpands@
\Qlabel@{#1}}%
\locallabel@
\FNSS@\Claimformat@@}
\def\claim@q@{\ifx\next\c\expandafter\claim@qc
\else\expandafter\Claimformat@@\fi}
\def\claim@qc\c#1{\expandafter\ifx\csname claim@C#1\endcsname\relax
\expandafter\newcount@\csname claim@C#1\endcsname
\global\csname claim@C#1\endcsname\z@\fi
\FNSS@\Claimformat@@}
\def\endclaim{\endgroup\claim@false\nopunct@false\nospace@false
\let\Claimformat@@\claimformat@@\medbreak}
\Invalid@\claimclause
\def\newclaim{\FN@\newclaim@}
\def\newclaim@{\ifx\next\claimclause
\DN@\claimclause##1{\newclaim@@{##1}}\else
\DN@{\newclaim@@\relax}\fi\next@}
\def\claimlist@{\\\claim}
\newtoks\claim@i
\newtoks\claim@v
\let\noclaimclause@=F
\def\newclaim@@#1#2#3\c#4#5{\define#2{}%
\rightadd@#2\to\claimlist@\rightadd@#2\to\nofrillslist@%
\expandafter\def\csname\exstring@#2@P\endcsname{\claim@P}%
\expandafter\def\csname\exstring@#2@Q\endcsname{\claim@Q}%
\expandafter\def\csname\exstring@#2@S\endcsname{\claim@S}%
\expandafter\def\csname\exstring@#2@N\endcsname{\claim@N}%
\expandafter\def\csname\exstring@#2@F\endcsname{\claim@F}%
\expandafter\def\csname end\exstring@#2\endcsname{\endclaim}%
\expandafter\ifx\csname claim@C#4\endcsname\relax
\expandafter\newcount@\csname claim@C#4\endcsname
\global\csname claim@C#4\endcsname\z@\fi
\edef\next@{\let\csname\exstring@#2@C\endcsname
\csname claim@C#4\endcsname}\next@
\def#2{\ifx\noclaimclause@ T\else#1\fi
\global\claim@i{#1}\gdef\claim@iv{#4}\global\claim@v{#5}%
\def\claimtype@{#2}\def\Claimformat@@{\claimformat@@{#5}}\claim@c\c{#4}}}
\def\shortenclaim#1#2{\define#2{}%
\ismember@\claimlist@#1%
\iftest@
\rightadd@#2\to\nofrillslist@%
\expandafter\def\csname\exstring@#2@P\endcsname
{\csname\exstring@#1@P\endcsname}%
\expandafter\def\csname\exstring@#2@Q\endcsname
{\csname\exstring@#1@Q\endcsname}%
\expandafter\def\csname\exstring@#2@S\endcsname
{\csname\exstring@#1@S\endcsname}%
\expandafter\def\csname\exstring@#2@N\endcsname
{\csname\exstring@#1@N\endcsname}%
\expandafter\def\csname\exstring@#2@F\endcsname
{\csname\exstring@#1@F\endcsname}%
\expandafter\def\csname end\exstring@#2\endcsname{\endclaim}%
\edef\next@{\let\csname\exstring@#2@C\endcsname
\csname claim\exstring@#1C\endcsname}\next@
\setbox\z@\vbox{\let\noclaimclause@ T#1""\relax\endgroup}%
\edef#2{\the\claim@i
\def\noexpand\claimtype@{\noexpand#2}%
\def\noexpand\Claimformat@@{\noexpand\claimformat@@{\the\claim@v}\relax}%
\noexpand\claim@c\noexpand\c{\claim@iv}}%
\else
\Err@{\noexpand#1not yet created by \string\newclaim}%
\fi}
\def\classtest@#1{\DN@{#1}\ifx\next@\claimclass@
\test@true\else\test@false\fi}
\def\typetest@#1{\DN@{#1}\ifx\next@\claimtype@\test@true\else
\test@false\fi}
\newif\iftoc@
\def\tocfile{\iftoc@\else\alloc@@7\write\chardef\sixt@@n\toc@
\immediate\openout\toc@=\jobname.toc
\alloc@@7\write\chardef\sixt@@n\tic@
\immediate\openout\tic@=\jobname.tic
\global\toc@true\fi}
\rightadd@\hl\to\nofrillslist@
\rightadd@\HL\to\overlonglist@
\def\HL@@C{\csname HL@C\HLlevel@\endcsname}
\def\HL@@P{\csname HL@P\HLlevel@\endcsname}
\def\HL@@Q{\csname HL@Q\HLlevel@\endcsname}
\def\HL@@S{\csname HL@S\HLlevel@\endcsname}
\def\HL@@N{\csname HL@N\HLlevel@\endcsname}
\def\HL@@F{\csname HL@F\HLlevel@\endcsname}
\def\HL@@@C{\csname\exxx@\HLtype@ @C\endcsname}
\def\HL@@@P{\csname\exxx@\HLtype@ @P\endcsname}
\def\HL@@@Q{\csname\exxx@\HLtype@ @Q\endcsname}
\def\HL@@@S{\csname\exxx@\HLtype@ @S\endcsname}
\def\HL@@@N{\csname\exxx@\HLtype@ @N\endcsname}
\def\HL#1{\expandafter
\ifx\csname HL@C#1\endcsname\relax
\DN@{\Err@{\string\HL#1 not defined in this style}}%
\else
\DN@{\gdef\HLlevel@{#1}\def\HLname@{\HL{#1}}\let\HLtype@\relax\FNSS@\HL@}%
\next@}%
\newif\ifquoted@
\let\aftertoc@\relax
\def\HL@{%
\DN@"##1"##2\endHL{\def\entry@{##2}\quoted@true
{\noexpands@
\ifx\HLtype@\relax
\let\pre\HL@@P\let\post\HL@@Q\let\style\HL@@S\let\numstyle\HL@@N
\else
\let\pre\HL@@@P\let\post\HL@@@Q\let\style\HL@@@S\let\numstyle\HL@@@N
\fi
\Qlabel@{##1}\let\style\relax\xdef\Qlabel@@@@{##1}%
\xdef\Thepref@{\Thelabel@@@@}}%
\csname HL@\HLlevel@\endcsname##2\endHL
\let\pref\Thepref@
\csname HL@I\HLlevel@\endcsname
\csname HL@J\HLlevel@\endcsname
\let\pref\pref@
\HLtoc@
\aftertoc@
\let\aftertoc@\relax\overlong@false}%
\DNii@##1\endHL{\def\entry@{##1}\quoted@false
{\noexpands@
\ifx\HLtype@\relax
\global\advance\HL@@C\@ne
\xdef\Thelabel@@@{\number\HL@@C}%
\xdefThelabel@{\HL@@N}%
\xdef\Thelabel@@@@{\HL@@P\Thelabel@\HL@@Q}%
\xdefThelabel@@{\HL@@S}%
\else
\global\advance\HL@@@C\@ne
\xdef\Thelabel@@@{\number\HL@@@C}%
\xdefThelabel@{\HL@@@N}%
\xdef\Thelabel@@@@{\HL@@@P\Thelabel@\HL@@@Q}%
\xdefThelabel@@{\HL@@@S}%
\fi
\xdef\Thepref@{\Thelabel@@@@}}%
\csname HL@\HLlevel@\endcsname##1\endHL
\let\pref\Thepref@
\csname HL@I\HLlevel@\endcsname
\csname HL@J\HLlevel@\endcsname
\let\pref\pref@
\HLtoc@
\aftertoc@
\let\aftertoc@\relax\overlong@false}%
\ifx\next"\expandafter\next@\else\expandafter\nextii@\fi}%
\Invalid@\endHL
\def\hl@@C{\csname hl@C\hllevel@\endcsname}
\def\hl@@P{\csname hl@P\hllevel@\endcsname}
\def\hl@@Q{\csname hl@Q\hllevel@\endcsname}
\def\hl@@S{\csname hl@S\hllevel@\endcsname}
\def\hl@@N{\csname hl@N\hllevel@\endcsname}
\def\hl@@F{\csname hl@F\hllevel@\endcsname}
\def\hl@@@C{\csname\exxx@\hltype@ @C\endcsname}
\def\hl@@@P{\csname\exxx@\hltype@ @P\endcsname}
\def\hl@@@Q{\csname\exxx@\hltype@ @Q\endcsname}
\def\hl@@@S{\csname\exxx@\hltype@ @S\endcsname}
\def\hl@@@N{\csname\exxx@\hltype@ @N\endcsname}
\def\hl#1{\expandafter
\ifx\csname hl@C#1\endcsname\relax
\DN@{\Err@{\string\hl#1 not defined in this style}}%
\else
\DN@{\gdef\hllevel@{#1}\def\hlname@{\hl{#1}}\let\hltype@\relax\FNSS@\hl@}%
\next@}
\def\hl@{%
\DN@"##1"##2{\def\entry@{##2}\quoted@true
{\noexpands@
\ifx\hltype@\relax
\let\pre\hl@@P\let\post\hl@@Q\let\style\hl@@S\let\numstyle\hl@@N
\else
\let\pre\hl@@@P\let\post\hl@@@Q\let\style\hl@@@S\let\numstyle\hl@@@N
\fi
\Qlabel@{##1}\let\style\relax\xdef\Qlabel@@@@{##1}%
\xdef\Thepref@{\Thelabel@@@@}}%
\csname hl@\hllevel@\endcsname{##2}%
\let\pref\Thepref@
\csname hl@I\hllevel@\endcsname
\csname hl@J\hllevel@\endcsname
\let\pref\pref@
\hltoc@
\aftertoc@
\let\aftertoc@\relax\nopunct@false\nospace@false\FNSSP@}%
\DNii@##1{\def\entry@{##1}\quoted@false
{\noexpands@
\ifx\hltype@\relax
\global\advance\hl@@C\@ne
\xdef\Thelabel@@@{\number\hl@@C}%
\xdefThelabel@{\hl@@N}%
\xdef\Thelabel@@@@{\hl@@P\Thelabel@\hl@@Q}%
\xdefThelabel@@{\hl@@S}%
\else
\global\advance\hl@@@C\@ne
\xdef\Thelabel@@@{\number\hl@@@C}%
\xdefThelabel@{\hl@@@N}%
\xdef\Thelabel@@@@{\hl@@@P\Thelabel@\hl@@@Q}%
\xdefThelabel@@{\hl@@@S}%
\fi
\xdef\Thepref@{\Thelabel@@@@}}%
\csname hl@\hllevel@\endcsname{##1}%
\let\pref\Thepref@
\csname hl@I\hllevel@\endcsname
\csname hl@J\hllevel@\endcsname
\let\pref\pref@
\hltoc@
\aftertoc@
\let\aftertoc@\relax\nopunct@false\nospace@false\FNSSP@}%
\ifx\next"\expandafter\next@\else\expandafter\nextii@\fi}%
\def\six@#1#2 #3 #4 #5 #6 #7 {\DN@{#2}\ifx\next@\empty
\DN@##1\six@{}\else
\write#1{ #2 #3 #4 #5 #6 #7}\DN@{\six@#1}\fi
\next@}
\def\Sixtoc@{\ifx\macdef@\empty\else
\DN@##1##2\next@{\def\macdef@{##1##2}}%
\expandafter\next@\macdef@\next@
\edef\next@
{\noexpand\six@\toc@\macdef@
\space\space\space\space\space\space\space\space\space\space\space\space
\noexpand\six@}%
\next@\let\macdef@\relax\fi}
\def\QorThelabel@@@@{\ifquoted@
\noexpand\noexpand\noexpand"\Qlabel@@@@\noexpand\noexpand\noexpand"\else
\Thelabel@@@@\fi}
\def\HLtoc@{%
\iftoc@
\expandafter\expandafter\expandafter\unmacro@
\expandafter\meaning\csname HL@W\HLlevel@\endcsname\unmacro@
{\noexpands@\let\style\relax
\edef\next@{\write\toc@{\noexpand\noexpand\expandafter\noexpand\HLname@
{\macdef@}{\QorThelabel@@@@}}}%
\next@}%
\expandafter\unmacro@\meaning\entry@\unmacro@
\Sixtoc@
\write\toc@{\noexpand\Page{\number\pageno}{\page@N}%
{\page@P}{\page@Q}^^J}%
\fi}
\def\hltoc@{%
\iftoc@
\expandafter\expandafter\expandafter\unmacro@
\expandafter\meaning\csname hl@W\hllevel@\endcsname\unmacro@
{\noexpands@\let\style\relax
\edef\next@{\write\toc@{%
\ifnopunct@\noexpand\noexpand\noexpand\nopunct\fi
\ifnospace@\noexpand\noexpand\noexpand\nospace\fi
\noexpand\noexpand\expandafter\noexpand\hlname@
{\macdef@}{\QorThelabel@@@@}}}%
\next@}%
\expandafter\unmacro@\meaning\entry@\unmacro@
\Sixtoc@
\write\toc@{\noexpand\Page{\number\pageno}{\page@N}%
{\page@P}{\page@Q}^^J}%
\fi}
\def\mainfile#1{\def\mainfile@{#1}}
\def\checkmainfile@{\ifx\mainfile@\undefined
\Err@{No \noexpand\mainfile specified}\fi}
\expandafter\newcount@\csname HL@C1\endcsname
\csname HL@C1\endcsname\z@
\expandafter\def\csname HL@S1\endcsname#1{#1\null.}
\expandafter\let\csname HL@N1\endcsname\arabic
\expandafter\let\csname HL@P1\endcsname\empty
\expandafter\let\csname HL@Q1\endcsname\empty
\expandafter\def\csname HL@F1\endcsname{\bf}
\expandafter\let\csname HL@W1\endcsname\empty
\expandafter\newcount@\csname hl@C1\endcsname
\csname hl@C1\endcsname\z@
\expandafter\def\csname hl@S1\endcsname#1{#1\/}
\expandafter\let\csname hl@N1\endcsname\arabic
\expandafter\let\csname hl@P1\endcsname\empty
\expandafter\let\csname hl@Q1\endcsname\empty
\expandafter\def\csname hl@F1\endcsname{\bf}
\expandafter\let\csname hl@W1\endcsname\empty
\expandafter\def\csname HL@1\endcsname#1\endHL{\bigbreak
{\locallabel@
\global\setbox\@ne\vbox{\Let@\tabskip\hss@
\halign to\hsize{\bf\hfil\ignorespaces##\unskip\hfil\cr
\expandafter\ifx\csname HL@W1\endcsname\empty\else
\csname HL@W1\endcsname\space\fi
{\HL@@F\ifx\thelabel@@\empty\else\thelabel@@\space\fi}%
\ignorespaces#1\crcr}}%
\unvbox\@ne\nobreak\medskip}
\expandafter\def\csname hl@1\endcsname#1{\medbreak\noindent@@
{\locallabel@
\bf{\hl@@F\ifx\thelabel@@\empty\else\thelabel@@\space\fi}%
\ignorespaces#1\unskip\punct@{\null.}\addspace@\enspace}}
\expandafter\def\csname HL@I1\endcsname{\Reset\hl1{1}%
\ifx\pref\empty\newpre\hl1{}\else\newpre\hl1{\pref.}\fi}
\def\NameHL#1#2{\define#2{}%
\expandafter\ifx\csname HL@R#1\endcsname\relax
\else
\def\nextiv@{\let\nextiii@}%
\expandafter\nextiv@\csname HL@R#1\endcsname
\expandafter\let\nextiii@\undefined
\expandafter\let\csname\exxx@\nextiii@ @C\endcsname\relax
\expandafter\let\csname\exxx@\nextiii@ @P\endcsname\relax
\expandafter\let\csname\exxx@\nextiii@ @Q\endcsname\relax
\expandafter\let\csname\exxx@\nextiii@ @S\endcsname\relax
\expandafter\let\csname\exxx@\nextiii@ @N\endcsname\relax
\expandafter\let\csname\exxx@\nextiii@ @F\endcsname\relax
\expandafter\let\csname\exxx@\nextiii@ @W\endcsname\relax
\expandafter\let\csname end\exxx@\nextiii@\endcsname\undefined
\expandafter\gdef\csname HL@R#1\endcsname{#2}%
\expandafter\gdef\csname\exstring@#2@R\endcsname{{HL}{#1}}%
\iftoc@\write\toc@{\noexpand\NameHL#1\noexpand#2^^J}\fi
\rightadd@#2\to\overlonglist@
\edef\next@{\let\csname\exstring@#2@C\endcsname\expandafter\noexpand
\csname HL@C#1\endcsname}\next@
\edef\next@{\let\csname\exstring@#2@P\endcsname\expandafter\noexpand
\csname HL@P#1\endcsname}\next@
\edef\next@{\let\csname\exstring@#2@Q\endcsname\expandafter\noexpand
\csname HL@Q#1\endcsname}\next@
\edef\next@{\let\csname\exstring@#2@S\endcsname\expandafter\noexpand
\csname HL@S#1\endcsname}\next@
\edef\next@{\let\csname\exstring@#2@N\endcsname\expandafter\noexpand
\csname HL@N#1\endcsname}\next@
\edef\next@{\let\csname\exstring@#2@F\endcsname\expandafter\noexpand
\csname HL@F#1\endcsname}\next@
\edef\next@{\let\csname\exstring@#2@W\endcsname\expandafter\noexpand
\csname HL@W#1\endcsname}\next@
\edef\next@{\def\noexpand#2####1\expandafter\noexpand
\csname end\exstring@#2\endcsname
{\def\noexpand\HLtype@{\noexpand#2}%
\def\noexpand\HLname@{\noexpand#2}%
\gdef\noexpand\HLlevel@{#1}%
\noexpand\FNSS@\noexpand\HL@####1\noexpand\endHL}}%
\next@
\edef\next@{\noexpand\Invalid@\expandafter\noexpand
\csname end\exstring@#2\endcsname}%
\next@}
\def\Namehl#1#2{\define#2{}%
\expandafter\ifx\csname hl@R#1\endcsname\relax
\else
\def\nextiv@{\let\nextiii@}%
\expandafter\nextiv@\csname hl@R#1\endcsname
\expandafter\let\nextiii@\undefined
\expandafter\let\csname\exxx@\nextiii@ @C\endcsname\relax
\expandafter\let\csname\exxx@\nextiii@ @P\endcsname\relax
\expandafter\let\csname\exxx@\nextiii@ @Q\endcsname\relax
\expandafter\let\csname\exxx@\nextiii@ @S\endcsname\relax
\expandafter\let\csname\exxx@\nextiii@ @N\endcsname\relax
\expandafter\let\csname\exxx@\nextiii@ @F\endcsname\relax
\expandafter\let\csname\exxx@\nextiii@ @W\endcsname\relax
\expandafter\gdef\csname hl@R#1\endcsname{#2}%
\expandafter\gdef\csname\exstring@#2@R\endcsname{{hl}{#1}}%
\iftoc@\write\toc@{\noexpand\Namehl#1\noexpand#2^^J}\fi
\rightadd@#2\to\nofrillslist@%
\edef\next@{\let\csname\exstring@#2@C\endcsname\expandafter\noexpand
\csname hl@C#1\endcsname}\next@
\edef\next@{\let\csname\exstring@#2@P\endcsname\expandafter\noexpand
\csname hl@P#1\endcsname}\next@
\edef\next@{\let\csname\exstring@#2@Q\endcsname\expandafter\noexpand
\csname hl@Q#1\endcsname}\next@
\edef\next@{\let\csname\exstring@#2@S\endcsname\expandafter\noexpand
\csname hl@S#1\endcsname}\next@
\edef\next@{\let\csname\exstring@#2@N\endcsname\expandafter\noexpand
\csname hl@N#1\endcsname}\next@
\edef\next@{\let\csname\exstring@#2@F\endcsname\expandafter\noexpand
\csname hl@F#1\endcsname}\next@
\edef\next@{\let\csname\exstring@#2@W\endcsname\expandafter\noexpand
\csname hl@W#1\endcsname}\next@
\edef\next@{\def\noexpand#2{%
\def\noexpand\hltype@{\noexpand#2}%
\def\noexpand\hlname@{\noexpand#2}%
\gdef\noexpand\hllevel@{#1}%
\noexpand\FNSS@\noexpand\hl@}}%
\next@}%
\def\Initialize{\FN@\Init@}
\def\Init@{\ifx\next\HL\let\next@\InitH@\else\ifx\next\hl\let\next@\InitH@
\else\let\next@\InitS@\fi\fi\next@}
\def\InitH@#1#2{\expandafter\ifx\csname\exstring@#1@C#2\endcsname\relax
\DN@{\Err@{\noexpand#1level #2 not defined in this style}}\else
\DN@{\expandafter\gdef\csname\exstring@#1@J#2\endcsname}\fi\next@}
\def\InitC@#1#2{\edef\nextii@{\expandafter\noexpand\csname#1\endcsname{#2}}}
\def\InitS@#1{\expandafter\ifx\csname\exstring@#1@R\endcsname\relax
\Err@{\noexpand#1not defined in this style}\let\next@\relax\else
\DN@{\let\next@}\expandafter\next@\csname\exstring@#1@R\endcsname
\expandafter\InitC@\next@
\DN@{\expandafter\InitH@\nextii@}\fi\next@}
\def\value#1{\expandafter
\ifx\csname\exstring@#1@C\endcsname\relax
\expandafter\ifx\csname\exstring@#1@C1\endcsname\relax
\DN@{\Err@{\noexpand\value can't be used with \string#1}}%
\else
\DN@{\value@#1}%
\fi
\else
\DN@{\number\csname\exstring@#1@C\endcsname\relax}%
\next@}
\def\value@#1#2{\expandafter
\ifx\csname\exstring@#1@C#2\endcsname\relax
\DN@{\Err@{\string\value\string#1 can't be followed by \string#2}}%
\else
\DN@{\number\csname\exstring@#1@C#2\endcsname\relax}%
\next@}
\newcount\Value
\def\Evaluate#1{\expandafter
\ifx\csname\exstring@#1@C\endcsname\relax
\expandafter\ifx\csname\exstring@#1@C1\endcsname\relax
\DN@{\Err@{\noexpand\Evaluate can't be used with \string#1}}%
\else
\DN@{\Evaluate@#1}%
\fi
\else
\DN@{\global\Value\csname\exstring@#1@C\endcsname}%
\next@}
\def\Evaluate@#1#2{\expandafter
\ifx\csname\exstring@#1@C#2\endcsname\relax
\DN@{\Err@{\string\Evaluate\string#1 can't be followed by \string#2}}%
\else
\DN@{\global\Value\csname\exstring@#1@C#2\endcsname}%
\fi\next@}
\def\pre#1{\expandafter
\ifx\csname\exstring@#1@P\endcsname\relax
\expandafter\ifx\csname\exstring@#1@P1\endcsname\relax
\DN@{\Err@{\noexpand\pre can't be used with \string#1}}%
\else
\DN@{\pre@#1}%
\fi
\else
\DN@{{\csname\exstring@#1@P\endcsname}}%
\next@}
\def\pre@#1#2{\expandafter
\ifx\csname\exstring@#1@P#2\endcsname\relax
\DN@{\Err@{\string\pre\string#1 can't be followed by \string#2}}%
\else
\DN@{{\csname\exstring@#1@P#2\endcsname}}%
\next@}
\def\post#1{\expandafter
\ifx\csname\exstring@#1@Q\endcsname\relax
\expandafter\ifx\csname\exstring@#1@Q1\endcsname\relax
\DN@{\Err@{\noexpand\post can't be used with \string#1}}%
\else
\DN@{\post@#1}%
\fi
\else
\DN@{{\csname\exstring@#1@Q\endcsname}}%
\next@}
\def\post@#1#2{\expandafter
\ifx\csname\exstring@#1@Q#2\endcsname\relax
\DN@{\Err@{\string\post\string#1 can't be followed by \string#2}}%
\else
\DN@{{\csname\exstring@#1@Q#2\endcsname}}%
\next@}
\def\style#1{\expandafter
\ifx\csname\exstring@#1@S\endcsname\relax
\expandafter\ifx\csname\exstring@#1@S1\endcsname\relax
\DN@{\Err@{\noexpand\style can't be used with \string#1}}%
\else
\DN@{\style@#1}%
\fi
\else
\DN@{\csname\exstring@#1@S\endcsname}%
\next@}
\def\style@#1#2{\expandafter
\ifx\csname\exstring@#1@S#2\endcsname\relax
\DN@{\Err@{\string\style\string#1 can't be followed by \string#2}}%
\else
\DN@{\csname\exstring@#1@S#2\endcsname}%
\next@}
\def\fontstyle#1{\expandafter
\ifx\csname\exstring@#1@F\endcsname\relax
\expandafter\ifx\csname\exstring@#1@F1\endcsname\relax
\DN@{\Err@{\noexpand\fontstyle can't be used with \string#1}}%
\else
\DN@{\fontstyle@#1}%
\fi
\else
\DN@##1{{\csname\exstring@#1@F\endcsname##1}}%
\next@}
\def\fontstyle@#1#2{\expandafter
\ifx\csname\exstring@#1@F#2\endcsname\relax
\DN@{\Err@{\string\fontstyle\string#1 can't be followed by \string#2}}%
\else
\DN@##1{{\csname\exstring@#1@F#2\endcsname##1}}%
\next@}
\def\Reset#1{\expandafter
\ifx\csname\exstring@#1@C\endcsname\relax
\expandafter\ifx\csname\exstring@#1@C1\endcsname\relax
\DN@{\Err@{\noexpand\Reset can't be used with \string#1}}%
\else
\DN@{\Reset@#1}%
\fi
\else
\DN@##1{\count@##1\relax\ifx#1\page\else\advance\count@\m@ne\fi
\global\csname\exstring@#1@C\endcsname\count@}%
\next@}
\def\Reset@#1#2{\expandafter
\ifx\csname\exstring@#1@C#2\endcsname\relax
\DN@{\Err@{\string\Reset\string#1 can't be followed by \string#2}}%
\else
\DN@##1{\count@##1\relax\advance\count@\m@ne
\global\csname\exstring@#1@C#2\endcsname\count@}%
\next@}
\def\Offset#1{\expandafter
\ifx\csname\exstring@#1@C\endcsname\relax
\expandafter\ifx\csname\exstring@#1@C1\endcsname\relax
\DN@{\Err@{\noexpand\Offset can't be used with \string#1}}%
\else
\DN@{\Offset@#1}%
\fi
\else
\DN@##1{\count@##1\relax\advance\count@\m@ne\global\advance
\csname\exstring@#1@C\endcsname\count@}%
\next@}
\def\Offset@#1#2{\expandafter
\ifx\csname\exstring@#1@C#2\endcsname\relax
\DN@{\Err@{\string\Offset\string#1 can't be followed by \string#2}}%
\else
\DN@##1{\count@##1\relax\advance\count@\m@ne
\global\advance\csname\exstring@#1@C#2\endcsname\count@}%
\next@}
\def\getR@#1#2{\def\nextiv@{\let\nextiii@}\expandafter\nextiv@
\csname\exstring@#1@R#2\endcsname}
\def\letR@#1#2#3{\expandafter\let\csname#1@#3#2\endcsname\Next@}
\def\letR@@#1#2{\expandafter\let\csname\exstring@#1@#2\endcsname\Next@}
\def\newpre#1{\expandafter
\ifx\csname\exstring@#1@P\endcsname\relax
\expandafter\ifx\csname\exstring@#1@P1\endcsname\relax
\DN@{\Err@{\noexpand\newpre can't be used with \string#1}}%
\else
\DN@{\newpre@#1}%
\fi
\else
\DN@{%
\DNii@{%
\endgroup
\expandafter\let\csname\exstring@#1@P\endcsname\Next@
\expandafter\ifx\csname\exstring@#1@R\endcsname\relax\else
\getR@#1{}\expandafter\letR@\nextiii@ P\fi
}%
\begingroup\noexpands@\afterassignment\nextii@\xdef\Next@}%
\next@}
\def\newpre@#1#2{\expandafter
\ifx\csname\exstring@#1@P#2\endcsname\relax
\DN@{\Err@{\string\newpre\string#1 can't be followed by \string#2}}%
\else
\DN@{%
\DNii@{%
\endgroup
\expandafter\let\csname\exstring@#1@P#2\endcsname\Next@
\expandafter\ifx\csname\exstring@#1@R#2\endcsname\relax\else
\getR@#1{#2}\expandafter\letR@@\nextiii@ P\fi
}%
\begingroup\noexpands@\afterassignment\nextii@\xdef\Next@}%
\next@}
\def\newpost#1{\expandafter
\ifx\csname\exstring@#1@Q\endcsname\relax
\expandafter\ifx\csname\exstring@#1@Q1\endcsname\relax
\DN@{\Err@{\noexpand\newpost can't be used with \string#1}}%
\else
\DN@{\newpost@#1}%
\fi
\else
\DN@{%
\DNii@{%
\endgroup
\expandafter\let\csname\exstring@#1@Q\endcsname\Next@
\expandafter\ifx\csname\exstring@#1@R\endcsname\relax\else
\getR@#1{}\expandafter\letR@\nextiii@ Q\fi
}%
\begingroup\noexpands@\afterassignment\nextii@\xdef\Next@}%
\next@}
\def\newpost@#1#2{\expandafter
\ifx\csname\exstring@#1@Q#2\endcsname\relax
\DN@{\Err@{\string\newpost\string#1 can't be followed by \string#2}}%
\else
\DN@{%
\DNii@{%
\endgroup
\expandafter\let\csname\exstring@#1@Q#2\endcsname\Next@
\expandafter\ifx\csname\exstring@#1@R#2\endcsname\relax\else
\getR@#1{#2}\expandafter\letR@@\nextiii@ Q\fi
}%
\begingroup\noexpands@\afterassignment\nextii@\xdef\Next@}%
\next@}
\def\newstyle#1{\expandafter
\ifx\csname\exstring@#1@S\endcsname\relax
\expandafter\ifx\csname\exstring@#1@S1\endcsname\relax
\DN@{\Err@{\noexpand\newstyle can't be used
with \string#1}}%
\else
\DN@{\newstyle@#1}%
\fi
\else
\DN@{%
\DNii@{%
\expandafter\let\csname\exstring@#1@S\endcsname\Next@
\expandafter\ifx\csname\exstring@#1@R\endcsname\relax\else
\getR@#1{}\expandafter\letR@\nextiii@ S\fi
}%
\afterassignment\nextii@\gdef\Next@}%
\next@}
\def\newstyle@#1#2{\expandafter
\ifx\csname\exstring@#1@S#2\endcsname\relax
\DN@{\Err@{\string\newstyle\string#1 can't be followed by
\string#2}}%
\else
\DN@{%
\DNii@{%
\expandafter\let\csname\exstring@#1@S#2\endcsname\Next@
\expandafter\ifx\csname\exstring@#1@R#2\endcsname\relax\else
\getR@#1{#2}\expandafter\letR@@\nextiii@ S\fi
}%
\afterassignment\nextii@\gdef\Next@}%
\next@}
\def\newnumstyle#1{\expandafter
\ifx\csname\exstring@#1@N\endcsname\relax
\expandafter\ifx\csname\exstring@#1@N1\endcsname\relax
\DN@{\Err@{\noexpand\newnumstyle can't be used with
\string#1}}%
\else
\DN@{\newnumstyle@#1}%
\fi
\else
\DN@##1{%
\gdef\Next@{##1}%
\expandafter\let\csname\exstring@#1@N\endcsname\Next@
\expandafter\ifx\csname\exstring@#1@R\endcsname\relax\else
\getR@#1{}\expandafter\letR@\nextiii@ N\fi
}%
\next@}
\def\newnumstyle@#1#2{\expandafter
\ifx\csname\exstring@#1@N#2\endcsname\relax
\DN@{\Err@{\string\newnumstyle\string#1 can't be followed by
\string#2}}%
\else
\DN@##1{%
\gdef\Next@{##1}%
\expandafter\let\csname\exstring@#1@N#2\endcsname\Next@
\expandafter\ifx\csname\exstring@#1@R#2\endcsname\relax\else
\getR@#1{#2}\expandafter\letR@@\nextiii@ N\fi
}%
\fi
\next@}
\def\newfontstyle#1{\expandafter
\ifx\csname\exstring@#1@F\endcsname\relax
\expandafter\ifx\csname\exstring@#1@F1\endcsname\relax
\DN@{\Err@{\noexpand\newfontstyle can't be used with
\string#1}}%
\else
\DN@{\newfontstyle@#1}%
\fi
\else
\DN@##1{%
\gdef\Next@{##1}%
\expandafter\let\csname\exstring@#1@F\endcsname\Next@
\expandafter\ifx\csname\exstring@#1@R\endcsname\relax\else
\getR@#1{}\expandafter\letR@\nextiii@ F\fi
}%
\next@}
\def\newfontstyle@#1#2{\expandafter
\ifx\csname\exstring@#1@F#2\endcsname\relax
\DN@{\Err@{\string\newfontstyle\string#1 can't be followed by
\string#2}}%
\else
\DN@##1{%
\gdef\Next@{##1}%
\expandafter\let\csname\exstring@#1@F#2\endcsname\Next@
\expandafter\ifx\csname\exstring@#1@R#2\endcsname\relax\else
\getR@#1{#2}\expandafter\letR@@\nextiii@ F\fi
}%
\next@}
\def\word#1{\expandafter
\ifx\csname\exstring@#1@W\endcsname\relax
\expandafter\ifx\csname\exstring@#1@W1\endcsname\relax
\DN@{\Err@{\noexpand\word can't be used with \string#1}}%
\else
\DN@{\word@#1}%
\fi
\else
\DN@{{\csname\exstring@#1@W\endcsname}}%
\next@}
\def\word@#1#2{\expandafter
\ifx\csname\exstring@#1@W#2\endcsname\relax
\DN@{\Err@{\string\word\noexpand#1can't be followed by \string#2}}%
\else
\DN@{{\csname\exstring@#1@W#2\endcsname}}%
\next@}
\def\newword#1{\expandafter
\ifx\csname\exstring@#1@W\endcsname\relax
\expandafter\ifx\csname\exstring@#1@W1\endcsname\relax
\DN@{\Err@{\noexpand\newword can't be used with \string#1}}%
\else
\DN@{\newword@#1}%
\fi
\else
\DN@{%
\DNii@{%
\expandafter\let\csname\exstring@#1@W\endcsname\Next@
\expandafter\ifx\csname\exstring@#1@R\endcsname\relax\else
\getR@#1{}\expandafter\letR@\nextiii@ W\fi
}%
\afterassignment\nextii@\gdef\Next@}%
\next@}
\def\newword@#1#2{\expandafter
\ifx\csname\exstring@#1@W#2\endcsname\relax
\DN@{\Err@{\string\newword\noexpand#1can't be followed by \string#2}}%
\else
\DN@{%
\DNii@{%
\expandafter\let\csname\exstring@#1@W#2\endcsname\Next@
\expandafter\ifx\csname\exstring@#1@R#2\endcsname\relax\else
\getR@#1{#2}\expandafter\letR@@\nextiii@ W\fi
}%
\afterassignment\nextii@\gdef\Next@}%
\next@}
\newif\iffn@
\newcount\footmark@C
\footmark@C\z@
\def\footmark@S#1{$^{#1}$}
\let\footmark@N\arabic
\def\footmark@F{\rm}
\def\foottext@S#1{$^{#1}$}
\def\foottext@F{\rm}
\let\modifyfootnote@\relax
\def\modifyfootnote#1{\def\modifyfootnote@{#1}}
\def\vfootnote@#1{\insert\footins
\bgroup
\floatingpenalty\@MM\interlinepenalty\interfootnotelinepenalty
\leftskip\z@\rightskip\z@\spaceskip\z@\xspaceskip\z@
\rm\splittopskip\ht\strutbox\splitmaxdepth\dp\strutbox
\locallabel@\noindent@@{\foottext@F#1}\modifyfootnote@
\footstrut\FN@\fo@t}
\def\fo@t{\ifcat\bgroup\noexpand\next\expandafter\f@@t\else
\expandafter\f@t\fi}
\def\f@t#1{#1\@foot}
\def\f@@t{\bgroup\aftergroup\@foot\afterassignment\FNSSP@\let\next@}
\def\@foot{\unskip\lower\dp\strutbox\vbox to\dp\strutbox{}\egroup
\iffn@\expandafter\fn@false\else
\expandafter\postvanish@\fi}
\newif\ifplainfn@
\plainfn@true
\def\fancyfootnotes{\plainfn@false}
\newcount\fancyfootmarkcount@
\fancyfootmarkcount@\z@
\newcount\lastfnpage@
\lastfnpage@-\@M
\let\justfootmarklist@\empty
\def\footmark{\let\@sf\empty
\ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi
\DN@{\ifx"\next\expandafter\nextii@\else\expandafter\footmark@\fi}%
\DNii@"##1"{%
\iffirstchoice@
{\let\style\footmark@S\let\numstyle\footmark@N
\footmark@F##1%
\noexpands@
\let\style\foottext@S
\Qlabel@{##1}%
}%
\iffn@\else
{\noexpands@
\xdef\Next@{{\Thelabel@}{\Thelabel@@}{\Thelabel@@@}{\Thelabel@@@@}}%
}%
\expandafter\rightappend@\Next@\to\justfootmarklist@
\fi
\fi
\@sf\relax}%
\FN@\next@}
\def\footmark@{%
\iffirstchoice@
\global\advance\footmark@C\@ne
\ifplainfn@
\xdef\adjustedfootmark@{\number\footmark@C}%
\else
{\let\\\or\xdef\Next@{\ifcase\number\footmark@C\fnpages@\else
-\@M\fi}}%
\ifnum\Next@=-\@M
\xdef\adjustedfootmark@{\number\footmark@C}%
\else
\ifnum\Next@=\lastfnpage@
\global\advance\fancyfootmarkcount@\@ne
\else
\global\fancyfootmarkcount@\@ne
\global\lastfnpage@\Next@
\fi
\xdef\adjustedfootmark@{\number\fancyfootmarkcount@}%
\fi
\fi
{\noexpands@
\xdef\Thelabel@@@{\adjustedfootmark@}%
\xdefThelabel@\footmark@N
\xdef\Thelabel@@@@{\Thelabel@}%
\xdefThelabel@@\foottext@S
\iffn@\else
{\noexpands@
\xdef\Next@{{\Thelabel@}{\Thelabel@@}{\Thelabel@@@}{\Thelabel@@@@}}%
}%
\expandafter\rightappend@\Next@\to\justfootmarklist@
\fi
\ifplainfn@
\else
\edef\next@{\write\laxwrite@{F\noexpand\the\pageno}}\next@
\fi
\footmark@S{\footmark@N{\adjustedfootmark@}}%
\@sf\relax}
\def\foottext{\prevanish@
\ifx\justfootmarklist@\empty
\Err@{There is no \noexpand\footmark for this \string\foottext}\fi
\DN@\\##1##2\next@{\DN@{##1}\gdef\justfootmarklist@{##2}}%
\expandafter\next@\justfootmarklist@\next@
\expandafter\foottext@\next@}
\def\foottext@#1#2#3#4{{\noexpands@
\xdef\Thelabel@{#1}\xdef\Thelabel@@{#2}%
\xdef\Thelabel@@@{#3}\xdef\Thelabel@@@@{#4}}%
\vfootnote@{\thelabel@@}}
\rightadd@\foottext\to\vanishlist@
\def\footnote{\fn@true
\let\@sf\empty
\ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi
\DN@{\ifx"\next\expandafter\nextii@\else\expandafter\nextiii@\fi}%
\DNii@"##1"{\footmark"##1"\vfootnote@{\let\style\foottext@S
\let\numstyle\footmark@N##1}}%
\def\nextiii@{\footmark\vfootnote@{\foottext@S{\footmark@N
{\adjustedfootmark@}}}}%
\FN@\next@}
\newdimen\litindent
\litindent20\p@
\newbox\litbox@
\newbox\Litbox@
\newcount\interlitpenalty@
\interlitpenalty@\@M
\newcount\litlines@
{\obeyspaces\gdef\defspace@{\def {\allowbreak\hskip.5emminus.15em}}}
{\obeylines\gdef\letM@{\let^^M\CtrlM@}}
\def\CtrlM@{\egroup
\ifcase\litlines@\advance\litlines@\@ne\or
\box\litbox@\advance\litlines@\@ne\else
\penalty\interlitpenalty@\box\litbox@\fi
\Lit@}
\def\Lit@{\setbox\litbox@\hbox\bgroup\litdefs@\hskip\litindent}
\newcount\littab@
\littab@8
\def\littab#1{\littab@#1\relax}
{\catcode`\^^I=\active\gdef\letTAB@{\let^^I\TAB@}}
\def\TAB@{\egroup
\dimen@\wd\litbox@
\advance\dimen@-\litindent
\setboxz@h{\tt0}%
\dimen@ii\littab@\wdz@
\divide\dimen@\dimen@ii
\multiply\dimen@\dimen@ii
\advance\dimen@\littab@\wdz@
\advance\dimen@\litindent
\setbox\litbox@\hbox\bgroup\litdefs@\hbox to\dimen@{\unhbox\litbox@\hfil}}
{\catcode`\`=\active\gdef`{\relax\lq}}
\let\litbs@\relax
\let\litbs@@\relax
\def\litbackslash#1{%
\edef\litbs@{\catcode`\string#1=\z@
\def\noexpand\litbs@@{\def\expandafter\noexpand\csname\string#1\endcsname
{\char`\string#1}}}}
\def\litcodes@{\catcode`\\=12
\catcode`\{=12 \catcode`\}=12
\catcode`\$=12 \catcode`\&=12
\catcode`\#=12
\catcode`\^=12 \catcode`\_=12
\catcode`\@=12 \catcode`\~=12 \catcode`\"=12
\catcode`\;=12 \catcode`\:=12 \catcode`\!=12 \catcode`\?=12
\catcode`\%=12 \litbs@\catcode`\`=\active\obeyspaces\defspace@}
\def\activate@#1#2{{\lccode`\~=`#2%
\lowercase{%
\if0#1%
\gdef\Next@{\def~{\egroup\endgroup\bigskip\vskip-\parskip
\def\next@{\noindent@@\FN@\pretendspace@}\FNSS@\next@}}\else
\gdef\Next@{\def~{\egroup\egroup\endgroup}}\fi
\def\litdefs@{\let\0\empty\let\1\litdelim@\def\ {\char32 }\litbs@@}%
\def\litdelimiter#1{%
\edef\litdelim@{\char`#1}%
\def\lit#1{\leavevmode\begingroup\litcodes@\litdefs@
\tt\hyphenchar\tentt\m@ne\lit@}%
\def\lit@##1#1{##1\endgroup\null}%
\def\Lit#1{\ifhmode$$\abovedisplayskip\bigskipamount
\abovedisplayshortskip\bigskipamount
\belowdisplayskip\z@\belowdisplayshortskip\z@
\postdisplaypenalty\@M
$$\vskip-\baselineskip\else\bigskip\fi
\begingroup\litlines@\z@
\catcode`#1=\active\activate@0#1\Next@
\def\displaybreak{\egroup\break\litlines@\z@\Lit@}%
\def\allowdisplaybreak{\egroup\allowbreak\litlines@\z@\Lit@}%
\def\allowdisplaybreaks{\egroup\allowbreak\interlitpenalty@\z@
\litlines@\z@\Lit@}%
\litcodes@\tt\catcode`\^^I=\active\letTAB@
\obeylines\letM@\Lit@}%
\def\Litbox##1=#1{\begingroup\ifodd##1\relax\aftergroup\global\fi
\aftergroup\setbox\aftergroup##1\aftergroup\box\aftergroup\Litbox@
\def\allowdisplaybreak{\egroup\allowbreak\litlines@\z@\Lit@}%
\def\allowdisplaybreaks{\egroup\allowbreak\interlitpenalty@\z@
\litlines@\z@\Lit@}%
\catcode`#1=\active\activate@1#1\Next@
\litcodes@\tt\catcode`\^^I=\active\letTAB@
\obeylines\letM@\global\setbox\Litbox@\vbox\bgroup\litindent\z@%
\litlines@\z@\Lit@}%
\newbox\titlebox@
\setbox\titlebox@\vbox{}
\rightadd@\title\to\overlonglist@
\def\title{\begingroup\Let@
\global\setbox\titlebox@\vbox\bgroup\tabskip\hss@
\halign to\hsize\bgroup\bf\hfil\ignorespaces##\unskip\hfil\cr}
\def\endtitle{\crcr\egroup\egroup\endgroup\overlong@false}
\newbox\authorbox@
\rightadd@\author\to\overlonglist@
\def\author{\begingroup\Let@
\global\setbox\authorbox@\vbox\bgroup\tabskip\hss@
\halign to\hsize\bgroup\rm\hfil\ignorespaces##\unskip\hfil\cr}
\def\endauthor{\crcr\egroup\egroup\endgroup\overlong@false}
\newbox\affilbox@
\def\affil{\begingroup\Let@
\global\setbox\affilbox@\vbox\bgroup\tabskip\hss@
\halign to\hsize\bgroup\rm\hfil\ignorespaces##\unskip\hfil\cr}%
\def\endaffil{\crcr\egroup\egroup\endgroup\overlong@false}
\let\date@\relax
\def\date#1{\gdef\date@{\ignorespaces#1\unskip}}
\def\today{\ifcase\month\or January\or February\or March\or April\or May\or
June\or July\or August\or September\or October\or November\or December\fi
\space\number\day, \number\year}
\def\maketitle{\hrule\height\z@\vskip-\topskip
\vskip24\p@ plus12\p@ minus12\p@
\unvbox\titlebox@
\ifvoid\authorbox@\else\vskip12\p@ plus6\p@ minus3\p@\unvbox\authorbox@\fi
\ifvoid\affilbox@\else\vskip10\p@ plus5\p@ minus2\p@\unvbox\affilbox@\fi
\ifx\date@\relax\else\vskip6\p@ plus2\p@ minus\p@\centerline{\rm\date@}\fi
\vskip18\p@ plus12\p@ minus6\p@}
\def\cite{%
\DNii@(##1)##2{{\rm[}{##2}, {##1\/}{\rm]}}%
\def\nextiii@##1{{\rm[}{##1\/}{\rm]}}%
\DN@{\ifx\next(\expandafter\nextii@\else\expandafter\nextiii@\fi}%
\FN@\next@}
\def\makebib@W{Bibliography}
\def\makebib{\begingroup\rm\bigbreak\centerline{\smc\makebib@W}%
\nobreak\medskip
\sfcode`\.=\@m\everypar{}\parindent\z@
\def\nopunct{\nopunct@true}\def\nospace{\nospace@true}%
\nopunct@false\nospace@false
\def\lkerns@{\null\kern\m@ne sp\kern\@ne sp}%
\def\nkerns@{\null\kern-\tw@ sp\kern\tw@ sp}%
\let\endmakebib\endgroup
\newif\ifnoprepunct@
\newif\ifnoprespace@
\newif\ifnoquotes@
\def\noprepunct{\noprepunct@true}
\def\noprespace{\noprespace@true}
\def\noquotes{\noquotes@true}
\newbox\nobox@
\newbox\keybox@
\newbox\bybox@
\newbox\paperbox@
\newbox\paperinfobox@
\newbox\jourbox@
\newbox\volbox@
\newbox\issuebox@
\newbox\yrbox@
\newbox\pgbox@
\newbox\ppbox@
\newbox\bookbox@
\newbox\inbookbox@
\newbox\bookinfobox@
\newbox\publbox@
\newbox\publaddrbox@
\newbox\edbox@
\newbox\edsbox@
\newbox\langbox@
\newbox\translbox@
\newbox\finalinfobox@
\def\setbibinfo@#1{\edef\next@{\ifnopunct@1\else0\fi
\ifnospace@1\else0\fi\ifnoprepunct@1\else0\fi\ifnoprespace@1\else0\fi
\ifnoquotes@1\else0\fi}%
\DNii@{00000}%
\ifx\next@\nextii@\else\xdef\bibinfo@{\bibinfo@\the#1,\next@}%
\fi}
\def\getbibinfo@#1{\ifx\bibinfo@\empty
\let\next@0\let\nextii@0\let\nextiii@0\let\nextiv@0\let\nextv@0\else
\edef\next@{\def
\noexpand\next@####1\the#1,####2####3####4####5####6####7\noexpand\next@
{\let\noexpand\next@####2\let\noexpand\nextii@####3%
\let\noexpand\nextiii@####4\let\noexpand\nextiv@####5%
\let\noexpand\nextv@####6}%
\noexpand\next@\bibinfo@\the#1,00000\noexpand\next@}\next@
\fi}
\newif\ifbookinquotes@
\def\bookinquotes{\bookinquotes@true}
\newif\ifpaperinquotes@
\def\paperinquotes{\paperinquotes@true}
\newif\ifininbook@
\def\ininbook{\ininbook@true}
\newif\ifopenquotes@
\def\closequotes@{\ifopenquotes@''\openquotes@false\fi}
\newif\ifbeginbib@
\newif\ifendbib@
\newif\ifprevjour@
\newif\ifprevbook@
\newdimen\bibindent@
\bibindent@20\p@
\def\bib{\global\let\bibinfo@\empty\global\let\translinfo@\relax\beginbib@true
\begingroup\noindent@
\hangindent\bibindent@\hangafter\@ne\bib@}
\def\v@id#1{\setbox#1\box\voidb@x}
\def\bib@{\v@id\nobox@\v@id\keybox@\v@id\bybox@\v@id\paperbox@
\v@id\paperinfobox@\v@id\jourbox@\v@id\volbox@\v@id\issuebox@
\v@id\yrbox@\v@id\pgbox@\v@id\ppbox@\v@id\bookbox@\v@id\inbookbox@
\v@id\bookinfobox@\v@id\publbox@\v@id\publaddrbox@\v@id\edbox@
\v@id\edsbox@\v@id\langbox@\v@id\translbox@\v@id\finalinfobox@
\bgroup}
\def\Setnonemptybox@#1#2{\unskip\setbibinfo@#1\egroup#2%
\def\aftergroup@{\ifdim\wd#1=\z@\setbox#1\box\voidb@x\fi}%
\setbox#1\vbox\bgroup\aftergroup\aftergroup@\hsize\maxdimen\leftskip\z@
\rightskip\z@\hbadness\@M\hfuzz\maxdimen\noindent}
\def\setnonemptybox@#1{\Setnonemptybox@#1\relax}
\def\no{\setnonemptybox@\nobox@}
\def\key{\setnonemptybox@\keybox@\bf}
\def\by{\setnonemptybox@\bybox@}
\def\bysame{\setnonemptybox@\bybox@\leaders\hrule\hskip3em\null}
\def\paper{\setnonemptybox@\paperbox@
\ifpaperinquotes@\getbibinfo@\paperbox@
\if\nextv@1\else``\fi\else\it\fi}
\def\paperinfo{\setnonemptybox@\paperinfobox@}
\def\jour{\Setnonemptybox@\jourbox@\prevjour@true}
\def\vol{\setnonemptybox@\volbox@\bf}
\def\issue{\setnonemptybox@\issuebox@}
\def\yr{\setnonemptybox@\yrbox@}
\def\toappear{\noprepunct\finalinfo(to appear)}
\def\pg{\setnonemptybox@\pgbox@}
\def\pp{\setnonemptybox@\ppbox@}
\def\book{\Setnonemptybox@\bookbox@\prevbook@true
\ifbookinquotes@\getbibinfo@\bookbox@
\if\nextv@1\else``\fi\else\it\fi}
\def\inbook{\Setnonemptybox@\inbookbox@\prevbook@true
\ifininbook@ in \fi\ifbookinquotes@\getbibinfo@\inbookbox@
\if\nextv@1\else``\fi\fi}
\def\bookinfo{\setnonemptybox@\bookinfobox@}
\def\publ{\setnonemptybox@\publbox@}
\def\publaddr{\setnonemptybox@\publaddrbox@}
\def\ed{\setnonemptybox@\edbox@}
\def\eds{\setnonemptybox@\edsbox@}
\def\lang{\setnonemptybox@\langbox@}
\def\finalinfo{\setnonemptybox@\finalinfobox@}
\def\setboxzl@{\setbox\z@\lastbox}
\def\getbox@#1{\setbox\z@\vbox{\vskip-\@M\p@
\unvbox#1%
\setboxzl@
\global\setbox\@ne\hbox{\unhbox\z@\unskip\unskip\unpenalty}%
\ifdim\lastskip=-\@M\p@\else
\loop\ifdim\lastskip=-\@M\p@
\else\unskip\unpenalty\setboxzl@
\global\setbox\@ne\hbox{\unhbox\z@\unhbox\@ne}%
\repeat\fi}%
\unhbox\@ne}
\def\adjustpunct@#1{\count@\lastkern
\ifnum\count@=\z@#1\closequotes@\else
\ifnum\count@>\tw@#1\closequotes@\else
\ifnum\count@<-\tw@#1\closequotes@\else
\unkern\unkern\setboxzl@
\skip@\lastskip\unskip
\count@@\lastpenalty\unpenalty
\ifnum\count@=\tw@\unskip\setboxzl@\fi
\ifdim\skip@=\z@\else\hskip\skip@\fi
#1\closequotes@
\ifnum\count@=\tw@\null\hfill\fi
\penalty\count@@
\fi\fi\fi}
\def\prepunct@#1#2{\getbibinfo@#2%
\ifnopunct@
\else
\if\nextiii@0\adjustpunct@#1\fi
\closequotes@
\ifnospace@
\else
\if\nextiv@0\space\else\fi
\nopunct@false\nospace@false
\if\next@1\nopunct@true\fi
\if\nextii@1\nospace@true\fi}
\def\ppunbox@#1#2{\prepunct@{#1}#2%
\getbox@#2}
\let\semicolon@;
\def\endbib@{%
\ifbeginbib@
\ifvoid\nobox@
\ifvoid\keybox@\else\hbox to\bibindent@{[\getbox@\keybox@]\hss}\fi
\else\hbox to\bibindent@{\hss\getbox@\nobox@. }\fi
\ifvoid\bybox@\else\getbox@\bybox@\fi
\else
\nopunct@true
\ifvoid\bybox@\else\ppunbox@\relax\bybox@\fi
\ifvoid\translbox@\else\ppunbox@,\translbox@\fi
\ifvoid\paperbox@\else\ppunbox@,\paperbox@\ifpaperinquotes@
\if\nextv@1\else\openquotes@true\fi\fi
\ifvoid\paperinfobox@\else\ppunbox@,\paperinfobox@\fi
\test@false
\ifvoid\jourbox@\else\test@true\ppunbox@,\jourbox@\fi
\ifprevjour@\test@true\fi
\iftest@
\ifvoid\volbox@\else\ppunbox@\relax\volbox@\fi
\ifvoid\issuebox@
\else\prepunct@\relax\issuebox@ no.~\getbox@\issuebox@\fi
\ifvoid\yrbox@\else\prepunct@\relax\yrbox@(\getbox@\yrbox@)\fi
\ifvoid\ppbox@\else\ppunbox@,\ppbox@\fi
\ifvoid\pgbox@\else\prepunct@,\pgbox@ p.~\getbox@\pgbox@\fi
\test@false
\ifvoid\bookbox@\else\test@true\ppunbox@,\bookbox@\ifbookinquotes@
\if\nextv@1\else\openquotes@true\fi\fi\fi
\ifvoid\inbookbox@\else\test@true\ppunbox@,\inbookbox@\ifbookinquotes@
\if\nextv@1\else\openquotes@true\fi\fi\fi
\ifprevbook@\test@true\fi
\iftest@
\ifvoid\edbox@\else\prepunct@\relax\edbox@(\getbox@\edbox@, ed.)\fi
\ifvoid\edsbox@\else\prepunct@\relax\edsbox@(\getbox@\edsbox@, eds.)\fi
\ifvoid\bookinfobox@\else\ppunbox@,\bookinfobox@\fi
\ifvoid\publbox@\else\ppunbox@,\publbox@\fi
\ifvoid\publaddrbox@\else\ppunbox@,\publaddrbox@\fi
\ifvoid\yrbox@\else\ppunbox@,\yrbox@\fi
\ifvoid\ppbox@\else\prepunct@,\ppbox@ pp.~\getbox@\ppbox@\fi
\ifvoid\pgbox@\else\prepunct@,\pgbox@ p.~\getbox@\pgbox@\fi
\ifvoid\finalinfobox@
\ifendbib@
\ifnopunct@\else.\closequotes@\fi
\else
\ifvoid\langbox@\else\space(\getbox@\langbox@)\fi
\/\semicolon@\closequotes@
\fi
\else
\ifendbib@
\ppunbox@{.\spacefactor3000\relax}\finalinfobox@
\ifnopunct@\else.\fi
\else
\ppunbox@,\finalinfobox@\/\semicolon@\fi
\ifvoid\langbox@\else\space(\getbox@\langbox@)\fi
\def\endbib{\unskip\egroup\endbib@true\endbib@\par\endgroup}
\def\morebib{\unskip\egroup
\endbib@false\endbib@
\global\let\bibinfo@\empty\beginbib@false
\bib@}
\def\anotherbib{\unskip\egroup
\endbib@false\endbib@
\global\let\bibinfo@\empty\beginbib@false
\prevjour@false\prevbook@false\bib@}
\def\transl{\unskip
\xdef\translinfo@{\the\translbox@,\ifnopunct@1\else0\fi
\ifnospace@1\else0\fi\ifnoprepunct@1\else0\fi\ifnoprespace@1\else0\fi0}%
\egroup\endbib@false\endbib@
\global\let\bibinfo@\translinfo@\beginbib@false
\bib@
\egroup
\def\aftergroup@{\ifdim\wd\translbox@=\z@\setbox\translbox@\box\voidb@x\fi}%
\setbox\translbox@\vbox\bgroup\aftergroup\aftergroup@
\hsize\maxdimen\leftskip\z@\rightskip\z@\hbadness\@M\hfuzz\maxdimen
\noindent}
\newwrite\auxwrite@
\newread\bbl@
\def\UseBibTeX{\immediate\openout\auxwrite@=\jobname.aux
\let\cite\BTcite@
\def\nocite##1{\immediate\write\auxwrite@{\string\citation{##1}}}%
\def\bibliographystyle##1{\immediate\write\auxwrite@{\string
\bibstyle{##1}}}%
\def\bibliography@W{Bibliography}%
\def\bibliography##1{\immediate\write\auxwrite@{\string\bibdata{##1}}%
\immediate\openin\bbl@=\jobname.bbl
\ifeof\bbl@
\W@{No .bbl file}%
\else
\immediate\closein\bbl@
\begingroup\input bibtex \input\jobname.bbl \endgroup
\fi}%
\def\BTcite@{%
\DNii@(##1)##2{{\rm[}\BTcite@@##2,\BTcite@@{\rm, }{##1\/}{\rm]}%
\immediate\write\auxwrite@{\string\citation{##2}}}%
\def\nextiii@##1{{\rm[}\BTcite@@##1,\BTcite@@\/{\rm]}%
\immediate\write\auxwrite@{\string\citation{##1}}}%
\DN@{\ifx\next(\expandafter\nextii@\else\expandafter\nextiii@\fi}%
\FN@\next@}%
\def\BTcite@@#1,{\BTcite@@@{#1}\FN@\BTcite@@@@}
\def\BTcite@@@@{\ifx\next\BTcite@@
\expandafter\eat@\else{\rm, }\expandafter\BTcite@@\fi}
\catcode`\~=11
\def\BTcite@@@#1{\nolabel@\cite{#1}\relax
\DNii@##1~##2\nextii@{##1}%
\csL@{#1}\expandafter\nextii@\Next@\nextii@\fi}
\catcode`\~=\active
\let\newblock\relax
\def\beginthebibliography@#1{\rm\setboxz@h{#1\ }\bibindent@\wdz@
\bigbreak\centerline{\smc\bibliography@W}\nobreak\medskip
\sfcode`\.=\@m\everypar{}\parindent\z@}
\def\unpurge#1{\input #1\relax}
\def\purge#1{\input #1.tox\relax}
\let\topinsert\undefined
\let\midinsert\undefined
\let\pageinsert\undefined
\newif\iffigproofing@
\def\Figureproofing{\figproofing@true}
\def\noFigureproofing{\figproofing@false}
\newif\ifHby@
\def\Hbyw#1{\global\Hby@true\hbyw\vsize{#1}}
\def\hbyw#1#2{%
\hbox{%
\ifHby@
\else
\iffigproofing@
\setbox\z@\vbox{\hrule\width5\p@}\ht\z@\z@
\vbox to#1{\hrule\height5\p@\width.4\p@\vfil\hrule\height5\p@\width.4\p@}%
\kern-.4\p@\rlap{\copy\z@}\raise#1\hbox{\rlap{\copy\z@}}%
\fi
\fi
\vbox to#1{\hbox to#2{}\vfil}%
\ifHby@
\else
\iffigproofing@
\vbox to#1{\hrule\height5\p@\width.4\p@\vfil\hrule\height5\p@\width.4\p@}%
\kern-.4\p@\llap{\copy\z@}\raise#1\hbox{\llap{\boxz@}}%
\fi
\fi}}
\newcount\island@C
\let\island@P\empty
\let\island@Q\empty
\def\island@S#1{#1\null.}
\let\island@N\arabic
\def\island@F{\rm}
\def\island@@@P{\csname\exxx@\islandtype@ @P\endcsname}
\def\island@@@Q{\csname\exxx@\islandtype@ @Q\endcsname}
\def\island@@@S{\csname\exxx@\islandtype@ @S\endcsname}
\def\island@@@N{\csname\exxx@\islandtype@ @N\endcsname}
\def\island@@@F{\csname\exxx@\islandtype@ @F\endcsname}
\def\island@@@C{\csname island@C\islandclass@\endcsname}
\newif\ifplace@
\newif\ifisland@
\def\island{%
\ifplace@
\DN@{\let\islandclass@\empty\def\islandtype@{\island}\FN@\island@}%
\else
\long\DN@##1\endisland{\Err@{\noexpand\island must be used after some
type of \string\...place}}%
\next@}
\def\island@{\ifx\next\c\let\next@\island@c\else
\DN@{\FN@\island@@}\fi\next@}
\def\island@@{\ifcat\bgroup\noexpand\next\let\next@\island@@@\else
\DN@{\Err@{\noexpand\island must be followed by a {prefix} for
\string\caption's}}\fi\next@}
\newbox\islandbox@
\newcount\captioncount@
\def\island@@@#1{\def\captionprefix@{#1}\captioncount@\z@
\global\setbox\islandbox@\vbox\bgroup}
\def\island@c\c#1{%
\ifplace@
\DN@{\def\islandclass@{#1}%
\expandafter\ifx\csname island@C#1\endcsname\relax
\expandafter\newcount@\csname island@C#1\endcsname
\global\csname island@C#1\endcsname\z@\fi
\FNSS@\island@c@}%
\else
\DN@{\edef\next@{\long\def\noexpand\next@########1\expandafter\noexpand
\csname end\exxx@\islandtype@\endcsname{\noexpand\Err@{\noexpand\noexpand
\expandafter\noexpand
\islandtype@ must be used after some type of \noexpand\string
\noexpand\...place}}}\next@\next@}%
\next@}
\def\island@c@{%
\ifcat\bgroup\noexpand\next
\let\next@\island@c@@
\else
\DN@{\Err@{\noexpand\island\string\c{\expandafter\string\islandclass@} must
be followed by a {prefix} for \string\caption's}}%
\fi\next@}
\def\island@c@@#1{\def\captionprefix@{#1}%
\captioncount@\z@\global\setbox\islandbox@\vbox\bgroup}
\rightadd@\caption\to\nofrillslist@
\newbox\captionbox@
\newbox\Captionbox@
\def\caption{%
\ifnum\captioncount@=\z@
\ifnopunct@
\DN@{\egroup\nopunct@true}%
\else
\let\next@\egroup
\fi
\else
\let\next@\relax
\next@
\advance\captioncount@\@ne
\FN@\caption@}
\def\caption@{\ifx\next"\expandafter\caption@q\else\expandafter\caption@@\fi}
\def\caption@q"#1"{\quoted@true
{\noexpands@
\let\pre\island@@@P\let\post\island@@@Q
\let\style\island@@@S\let\numstyle\island@@@N
\Qlabel@{#1}\let\style\relax\xdef\Qlabel@@@@{#1}}%
\finishcaption@}
\def\caption@@{\quoted@false
\global\advance\island@@@C\@ne
{\noexpands@
\xdef\Thelabel@@@{\number\island@@@C}%
\xdefThelabel@\island@@@N
\xdef\Thelabel@@@@{\island@@@P\Thelabel@\island@@@Q}%
\xdefThelabel@@\island@@@S
\xdef\Thepref@{\Thelabel@@@@}}%
\finishcaption@}
\long\def\captionformat@#1#2#3{\rm\strut#1 {\island@@@F#2} #3%
\punct@.\strut}
\long\def\widerthanisland@#1#2#3{\test@true\setbox\z@\vbox{\hsize\maxdimen
\noindent@@\captionformat@{#1}{#2}{#3}\par\setboxzl@}%
\ifdim\wdz@=\z@
\global\setbox\captionbox@\hbox{\noset@\unlabel@
\captionformat@{#1}{#2}{#3}}%
\ifdim\wd\captionbox@>\wd\islandbox@\else\test@false\fi
\fi}
\long\def\captionformat@@#1#2#3{\widerthanisland@{#1}{#2}{#3}%
\iftest@
\global\setbox\captionbox@\vbox{\hsize\wd\islandbox@
\vskip-\parskip\noindent@@\noset@\unlabel@
\captionformat@{#1}{#2}{#3}\par}%
\else
\global\setbox\captionbox@
\hbox to\wd\islandbox@{\hfil\box\captionbox@\hfil}%
\fi}
\long\def\finishcaption@#1{\def\entry@{#1}%
{\locallabel@
\captionformat@@
{\expandafter\ignorespaces\captionprefix@\unskip}%
{\ifx\thelabel@@\empty\unskip\else\thelabel@@\fi}%
{\ignorespaces#1\unskip}%
\ifnum\captioncount@=\@ne
\global\setbox\islandbox@\vbox{\ticwrite@\vbox{\box\islandbox@}}%
\global\setbox\Captionbox@\vbox{\box\captionbox@}%
\else
\global\setbox\islandbox@\vbox{\unvbox\islandbox@\setboxzl@
\ticwrite@\boxz@}%
\global\setbox\Captionbox@\vbox{\unvbox\Captionbox@
\smallskip\box\captionbox@}%
\fi}%
\nopunct@false\nospace@false\ignorespaces}
\def\Sixtic@{\ifx\macdef@\empty\else
\DN@##1##2\next@{\def\macdef@{##1##2}}%
\expandafter\next@\macdef@\next@
\edef\next@
{\noexpand\six@\tic@\macdef@
\space\space\space\space\space\space\space\space\space\space\space\space
\noexpand\six@}%
\next@\let\macdef@\relax\fi}
\def\ticwrite@{%
\iftoc@
{\noexpands@\let\style\relax
\DN@{\island}%
\edef\next@{\write\tic@{%
\ifnopunct@\noexpand\noexpand\noexpand\nopunct\fi
\ifx\islandtype@\next@\noexpand\noexpand\noexpand\island
\noexpand\string\noexpand\c{\islandclass@}{\captionprefix@}%
{\QorThelabel@@@@}\else\noexpand\noexpand\expandafter\noexpand
\islandtype@{\QorThelabel@@@@}}\fi}%
\next@}%
\expandafter\unmacro@\meaning\entry@\unmacro@
\Sixtic@
\write\tic@{\noexpand\Page{\number\pageno}{\page@N}{\page@P}{\page@Q}^^J}%
\fi}
\def\Htrim@#1{%
\ifHby@
\dimen@\vsize
\ifnum\captioncount@=\z@
\else
\advance\dimen@-\ht\Captionbox@
\advance\dimen@-#1%
\fi
\global\Hby@false
\dimen@ii\wd\islandbox@
\global\setbox\islandbox@\vbox
{\unvbox\islandbox@\setboxzl@
\vbox to\z@{\vss\boxz@}\nointerlineskip\hbyw\dimen@\dimen@ii}%
\global\Hby@true
\fi}
\newif\ifdata@
\def\iclasstest@#1{\DN@{#1}\ifx\next@\islandclass@
\test@true\else\test@false\fi}
\skipdef\skipi@=1
\def\endisland{\ifnum\captioncount@=\z@\expandafter\egroup\fi
\ifdata@
\else
\iclasstest@{T}%
\iftest@
{\rm\global\skipi@-\dp\strutbox}\global\advance\skipi@\bigskipamount
\Htrim@\skipi@
\global\setbox\islandbox@\vbox
{\ifnum\captioncount@=\z@\else
\box\Captionbox@
\nointerlineskip
\vskip\skipi@\fi
\box\islandbox@}%
\else
{\rm\global\skipi@\dp\strutbox}\global\advance\skipi@\medskipamount
\Htrim@\skipi@
\global\setbox\islandbox@\vbox
{\box\islandbox@
\ifnum\captioncount@=\z@\else
\nointerlineskip
\vskip\skipi@
\box\Captionbox@
\fi}%
\fi
\ifHby@
\else
\dimen@\ht\islandbox@\advance\dimen@\dp\islandbox@
\ifdim\dimen@>\vsize
\DN@{\island}%
\Err@{%
\ifx\islandtype@\next@\noexpand\island\else
\expandafter\noexpand\islandtype@\fi
\ifnum\captioncount@=\z@\else
with \noexpand\caption\fi
is larger than page}%
\ht\islandbox@=\vsize
\fi
\fi
\global\Hby@false\island@true}
\def\newisland#1\c#2#3{\define#1{}%
\iftoc@\immediate\write\tic@{\noexpand\newisland\noexpand#1%
\string\c{#2}{#3}^^J}\fi
\expandafter\def\csname\exstring@#1@S\endcsname{\island@S}%
\expandafter\def\csname\exstring@#1@N\endcsname{\island@N}%
\expandafter\def\csname\exstring@#1@P\endcsname{\island@P}%
\expandafter\def\csname\exstring@#1@Q\endcsname{\island@Q}%
\expandafter\def\csname\exstring@#1@F\endcsname{\island@F}%
\expandafter\def\csname end\exstring@#1\endcsname{\endisland}%
\expandafter
\ifx\csname island@C#2\endcsname\relax
\expandafter\newcount@\csname island@C#2\endcsname
\global\csname island@C#2\endcsname\z@
\edef\next@{\noexpand\expandafter\noexpand\let\noexpand
\csname\exstring@#1@C\noexpand\endcsname
\csname island@C#2\endcsname}%
\next@
\def#1{\def\islandtype@{#1}\island@c\c{#2}{#3}}}
\newisland\Figure\c{F}{Figure}
\newisland\Table\c{T}{Table}
\newbox\islandboxi
\newbox\islandboxii
\newbox\islandboxiii
\newbox\captionboxi
\newbox\captionboxii
\newbox\captionboxiii
\long\def\islandpairdata#1#2{{\data@true
\place@true
\global\setbox\islandboxi\box\islandbox@
\global\setbox\captionboxi\box\Captionbox@
\global\setbox\islandboxii\box\islandbox@
\global\setbox\captionboxii\box\Captionbox@
\long\def\islandpairbox#1#2{\islandpairdata{#1}{#2}%
\dimen@\ht\captionboxi
\ifdim\ht\captionboxii>\dimen@\dimen@\ht\captionboxii\fi
\ifdim\dimen@>\z@
\ifdim\ht\captionboxi<\dimen@
\global\setbox\captionboxi\vbox to\dimen@{\unvbox\captionboxi\vfil}\fi
\ifdim\ht\captionboxii<\dimen@
\global\setbox\captionboxii\vbox to\dimen@{\unvbox\captionboxii\vfil}\fi
\global\setbox\islandbox@\vbox
{\hbox to\hsize{\hfil\box\islandboxi\hfil\box\islandboxii\hfil}%
\ifdim\dimen@>\z@\nointerlineskip
{\rm\global\skipi@\dp\strutbox}\global\advance\skipi@\medskipamount
\vskip\skipi@
\hbox to\hsize{\hfil\box\captionboxi\hfil\box\captionboxii\hfil}\fi}}
\long\def\islandpairboxa#1#2{\islandpairdata{#1}{#2}%
\dimen@\ht\captionboxi
\ifdim\ht\captionboxii>\dimen@\dimen@\ht\captionboxii\fi
\ifdim\dimen@>\z@
\ifdim\ht\captionboxi<\dimen@
\global\setbox\captionboxi\vbox to\dimen@{\vfil\unvbox\captionboxi}\fi
\ifdim\ht\captionboxii<\dimen@
\global\setbox\captionboxii\vbox to\dimen@{\vfil\unvbox\captionboxii}\fi
\dimen@ii\ht\islandboxi
\ifdim\ht\islandboxii>\dimen@ii \dimen@ii\ht\islandboxii\fi
\ifdim\dimen@ii>\z@
\ifdim\ht\islandboxi<\dimen@ii
\global\setbox\islandboxi\vbox to\dimen@ii{\box\islandboxi\vfil}\fi
\ifdim\ht\islandboxii<\dimen@ii
\global\setbox\islandboxii\vbox to\dimen@ii{\box\islandboxii\vfil}\fi
\global\setbox\islandbox@\vbox{\ifdim\dimen@>\z@
\hbox to\hsize{\hfil\box\captionboxi\hfil\box\captionboxii\hfil}%
\nointerlineskip{\rm\global\skipi@-\dp\strutbox}%
\global\advance\skipi@\bigskipamount\vskip\skipi@\fi
\hbox to\hsize{\hfil\box\islandboxi\hfil\box\islandboxii\hfil}}}
\long\def\islandtripledata#1#2#3{{\data@true\place@true
\global\setbox\islandboxi\box\islandbox@
\global\setbox\captionboxi\box\Captionbox@
\global\setbox\islandboxii\box\islandbox@
\global\setbox\captionboxii\box\Captionbox@
\global\setbox\islandboxiii\box\islandbox@
\global\setbox\captionboxiii\box\Captionbox@
\long\def\islandtriplebox#1#2#3{\islandtripledata{#1}{#2}{#3}%
\dimen@\ht\captionboxi
\ifdim\ht\captionboxii>\dimen@ \dimen@\ht\captionboxii\fi
\ifdim\ht\captionboxiii>\dimen@ \dimen@\ht\captionboxiii\fi
\ifdim\dimen@>\z@
\ifdim\ht\captionboxi<\dimen@
\global\setbox\captionboxi\vbox to\dimen@{\unvbox\captionboxi\vfil}\fi
\ifdim\ht\captionboxii<\dimen@
\global\setbox\captionboxii\vbox to\dimen@{\unvbox\captionboxii\vfil}\fi
\ifdim\ht\captionboxiii<\dimen@
\global\setbox\captionboxiii\vbox to\dimen@{\unvbox\captionboxiii\vfil}\fi
\global\setbox\islandbox@\vbox
{\hbox to\hsize{\hfil\box\islandboxi\hfil\box\islandboxii\hfil
\box\islandboxiii\hfil}%
\ifdim\dimen@>\z@\nointerlineskip
{\rm\global\skipi@\dp\strutbox}\global\advance\skipi@\medskipamount
\vskip\skipi@
\hbox to\hsize{\hfil\box\captionboxi\hfil\box\captionboxii\hfil
\box\captionboxiii\hfil}\fi}}
\def\islandtripleboxa#1#2#3{\islandtripledata{#1}{#2}{#3}%
\dimen@\ht\captionboxi
\ifdim\ht\captionboxii>\dimen@ \dimen@\ht\captionboxii\fi
\ifdim\ht\captionboxiii>\dimen@ \dimen@\ht\captionboxiii\fi
\ifdim\dimen@>\z@
\ifdim\ht\captionboxi<\dimen@
\global\setbox\captionboxi\vbox to\dimen@{\vfil\unvbox\captionboxi}\fi
\ifdim\ht\captionboxii<\dimen@
\global\setbox\captionboxii\vbox to\dimen@{\vfil\unvbox\captionboxii}\fi
\ifdim\ht\captionboxiii<\dimen@
\global\setbox\captionboxiii\vbox to\dimen@{\vfil\unvbox\captionboxiii}\fi
\dimen@ii\ht\islandboxi
\ifdim\ht\islandboxii>\dimen@ii \dimen@ii\ht\islandboxii\fi
\ifdim\ht\islandboxiii>\dimen@ii \dimen@ii\ht\islandboxiii\fi
\ifdim\dimen@ii>\z@
\ifdim\ht\islandboxi<\dimen@ii
\global\setbox\islandboxi\vbox to\dimen@ii{\box\islandboxi\vfil}\fi
\ifdim\ht\islandboxii<\dimen@ii
\global\setbox\islandboxii\vbox to\dimen@ii{\box\islandboxii\vfil}\fi
\ifdim\ht\islandboxiii<\dimen@ii
\global\setbox\islandboxiii\vbox to\dimen@ii{\box\islandboxiii\vfil}\fi
\global\setbox\islandbox@\vbox
{\ifdim\dimen@>\z@
\hbox to\hsize{\hfil\box\captionboxi\hfil\box\captionboxii\hfil
\box\captionboxiii\hfil}%
\nointerlineskip{\rm\global\skipi@-\dp\strutbox}%
\global\advance\skipi@\bigskipamount\vskip\skipi@\fi
\hbox to\hsize{\hfil\box\islandboxi\hfil\box\islandboxii\hfil
\box\islandboxiii\hfil}}}
\def\Figurepair#1\and#2\endFigurepair{\island@true
\islandpairbox{\Figure#1\endFigure}{\Figure#2\endFigure}}
\def\Figuretriple#1\and#2\and#3\endFiguretriple{\island@true
\islandtriplebox{\Figure#1\endFigure}{\Figure#2\endFigure}%
{\Figure#3\endFigure}}
\def\Tablepair#1\and#2\endTablepair{\island@true
\islandpairboxa{\Table#1\endTable}{\Table#2\endTable}}
\def\Tabletriple#1\and#2\and#3\endTabletriple{\island@true
\islandtripleboxa{\Table#1\endTable}{\Table#2\endTable}%
{\Table#3\endTable}}
\def\place#1{\place@true\island@false
\ifisland@
\box\islandbox@
\else
\Err@{Whoa ... there's no \string\Figure, \string\Table,
etc., here}%
\place@false}
\newskip\belowtopfigskip
\belowtopfigskip 15\p@ plus 5\p@ minus5\p@
\newskip\abovebotfigskip
\abovebotfigskip 18\p@ plus 6\p@ minus6\p@
\newdimen\minpagesize
\minpagesize 5pc
\dimen@\belowtopfigskip
\advance\dimen@-\abovebotfigskip
\skip\topins\dimen@
\dimen\topins\z@
\newcount\topinscount@
\newbox\topinsdims@
\def\storedim@{\global\setbox\topinsdims@
\vbox{\hbox to\dimen@{}\unvbox\topinsdims@}}
\def\advancedimtopins@{%
\ifnum\pageno=\@ne
\else
\advance\dimen@\dimen\topins
\global\dimen\topins\dimen@
\fi}
\newcount\flipcount@
\def\fliptopins@{%
\global\flipcount@\z@
\ifvoid\topins\else
\setbox\z@\vbox
{\vskip\p@
\unvbox\topins
\global\setbox\topins\vbox{}%
\loop
\test@false
\ifdim\lastskip=\z@\unskip
\ifdim\lastskip=\z@
\test@true\fi\fi
\iftest@
\global\advance\flipcount@\@ne
\setboxzl@
\global\setbox\topins\vbox{\unvbox\topins\boxz@}%
\unpenalty
\repeat}\fi}
\newif\ifPar@
\newcount\Parcount@
\newbox\Parbox@
\expandafter\newbox\csname Parfigbox1\endcsname
\expandafter\newbox\csname Parfigbox2\endcsname
\expandafter\newbox\csname Parfigbox3\endcsname
\expandafter\newbox\csname Parfigbox4\endcsname
\expandafter\newbox\csname Parfigbox5\endcsname
\expandafter\newdimen\csname Parprev1\endcsname
\expandafter\newdimen\csname Parprev2\endcsname
\expandafter\newdimen\csname Parprev3\endcsname
\expandafter\newdimen\csname Parprev4\endcsname
\expandafter\newdimen\csname Parprev5\endcsname
\expandafter\newdimen\csname Parprev6\endcsname
\def\Par{\par\global\csname Parprev1\endcsname\prevdepth
\global\Parcount@\@ne
\global\Par@true\global\let\Parlist@\empty
\global\setbox\Parbox@\vbox\bgroup\break}
\def\place@#1#2{%
\ifisland@
\ifhmode
\ifPar@
\ifnum\Parcount@>5
\Err@{Only 5 \string\place's allowed per
\string\Par...\noexpand\endPar paragraph}%
\else
\expandafter\expandafter\expandafter
\global\expandafter\setbox
\csname Parfigbox\number\Parcount@\endcsname\box\islandbox@
\global\advance\Parcount@\@ne
\xdef\Parlist@{\Parlist@#1}%
\fi
\else
\vadjust{#2}%
\fi
\else
#2%
\fi
\else
\Err@{Whoa ... there's no \string\Figure,
\string\Table, etc., here}%
\place@false}
\long\def\Aplace#1{\prevanish@
\place@true\island@false
\place@ a\Aplace@
\postvanish@}
\long\def\AAplace#1{\prevanish@\place@true\island@false
\place@ A\AAplace@
\postvanish@}
\newif\ifAA@
\def\AAplace@{\AA@true\Aplace@\AA@false}
\let\AAlist@\empty
\def\Aplace@{\allowbreak
\dimen@=\ht\islandbox@
\advance\dimen@\abovebotfigskip
\ht\islandbox@\dimen@
\advance\dimen@\dp\islandbox@
\storedim@
\ifAA@
\xdef\AAlist@{\AAlist@1}%
\advancedimtopins@
\else
\xdef\AAlist@{\AAlist@0}%
\ifnum\topinscount@>\@ne\else\advancedimtopins@\fi
\insert\topins{\penalty\z@\splittopskip\z@\floatingpenalty\z@
\box\islandbox@}%
\global\advance\topinscount@\@ne}
\long\def\Bplace#1{\prevanish@\place@true\island@false
\place@ b\Bplace@
\postvanish@}
\def\Bplace@{\allowbreak
\ifnum\topinscount@=\z@
\setbox\z@\vbox{\vbox to-\belowtopfigskip{}}%
\dimen@-\skip\topins
\ht\z@\dimen@
\storedim@
\advancedimtopins@
\insert\topins{\boxz@}%
\global\advance\topinscount@\@ne
\xdef\AAlist@{\AAlist@0}%
\dimen@\ht\islandbox@
\advance\dimen@\abovebotfigskip
\ht\islandbox@\dimen@
\advance\dimen@\dp\islandbox@
\storedim@
\xdef\AAlist@{\AAlist@0}%
\ifnum\topinscount@>\@ne\else\advancedimtopins@\fi
\insert\topins{\penalty\z@\splittopskip\z@
\floatingpenalty\z@
\box\islandbox@}%
\global\advance\topinscount@\@ne}
\def\breakisland@{\global\setbox\@ne\lastbox\global\skipi@\lastskip\unskip
\global\setbox\thr@@\lastbox}%
\def\printisland@{\centerline{\box\thr@@}\nobreak\nointerlineskip
\vskip\skipi@
\ifdim\ht\@ne<\z@\box\@ne\else\centerline{\box\@ne}\fi}
\def\bottomfigs@{%
\count@\@ne
\loop
\ifnum\count@<\flipcount@
\nointerlineskip
\vskip\abovebotfigskip
\global\setbox\topins\vbox{\unvbox\topins\setboxzl@
\unvbox\z@
\breakisland@}%
\printisland@
\advance\count@\@ne
\repeat}
\def\resetdimtopins@{%
\global\advance\topinscount@-\flipcount@
\global\setbox\topinsdims@\vbox
{\unvbox\topinsdims@
\count@\z@
\DN@##1##2\next@{\gdef\AAlist@{##2}}%
\loop
\ifnum\count@<\flipcount@\setboxzl@
\expandafter\next@\AAlist@\next@
\advance\count@\@ne
\repeat
\dimen@\z@
\count@\z@
\setbox\tw@\vbox{}%
\edef\nextiii@{\AAlist@}%
\DN@##1##2\next@{\DNii@{##1}\def\nextiii@{##2}}%
\loop
\test@false
\ifnum\count@<\topinscount@
\expandafter\next@\nextiii@\next@
\ifnum\count@<\tw@
\test@true
\else
\if\nextii@ 1\test@true\fi
\fi
\fi
\iftest@
\setboxzl@
\advance\dimen@\wdz@
\setbox\tw@\vbox{\boxz@\unvbox\tw@}%
\advance\count@\@ne
\repeat
\unvbox\tw@
\global\dimen\topins\dimen@}}
\def\Place@#1#2{%
\ifisland@
\ifhmode
\ifPar@
\ifnum\Parcount@>5
\Err@{Only 5 \string\place's allowed per
\string\Par...\noexpand\endPar paragraph}%
\else
\expandafter\expandafter\expandafter\global\expandafter\setbox
\csname Parfigbox\number\Parcount@\endcsname\box\islandbox@
\global\advance\Parcount@\@ne
\xdef\Parlist@{\Parlist@#1}%
\vadjust{\break}%
\fi
\else
\Err@{\noexpand#2allowed only in a \string\Par...\noexpand\endPar
paragraph}%
\fi
\else
#2%
\fi
\else
\Err@{Who ... there's no \string\Figure, \string\Table,
etc., here}%
\place@false}
\newif\ifC@
\newdimen\Cdim@
\long\def\Cplace#1{\prevanish@\place@true\island@false
\Place@ c\Cplace@
\postvanish@}
\def\Cplace@{\allowbreak
\ifnum\topinscount@>\z@\else
\global\C@true\global\Cdim@\pagetotal\fi
\Aplace@}
\long\def\Mplace#1{\prevanish@\place@true\island@false
\Place@ m\Mplace@
\postvanish@}
\long\def\MXplace#1{\prevanish@\place@true\island@false
\Place@ M\MXplace@
\postvanish@}
\newif\ifMX@
\def\MXplace@{\MX@true\Mplace@\MX@false}
\def\Mplace@{\allowbreak
\dimen@\ht\islandbox@\advance\dimen@\dp\islandbox@
\ifdim\pagetotal=\z@\else
\ifdim\lastskip<\abovebotfigskip\advance\dimen@\abovebotfigskip
\advance\dimen@-\lastskip\fi
\advance\dimen@\pagetotal
\ifdim\dimen@>\pagegoal
\Aplace@
\else
\nointerlineskip
\ifdim\lastskip<\abovebotfigskip\removelastskip\vskip\abovebotfigskip\fi
\setbox\z@\vbox{\unvbox\islandbox@
\breakisland@}%
\printisland@
\ifnum\topinscount@=\z@
\setbox\z@\vbox{\vbox to-\belowtopfigskip{}}%
\dimen@-\skip\topins
\ht\z@\dimen@
\storedim@
\advancedimtopins@
\insert\topins{\boxz@}%
\global\advance\topinscount@\@ne
\xdef\AAlist@{\AAlist@0}%
\fi
\ifMX@
\ifnum\topinscount@=\@ne
\setbox\z@\vbox{\vbox to-\abovebotfigskip{}}%
\ht\z@\z@
\dimen@\z@
\storedim@
\advancedimtopins@
\insert\topins{\boxz@}%
\global\advance\topinscount@\@ne
\xdef\AAlist@{\AAlist@0}%
\fi
\fi
\nointerlineskip
\vskip\belowtopfigskip
\fi}
\expandafter\newbox\csname Parbox1\endcsname
\expandafter\newbox\csname Parbox2\endcsname
\expandafter\newbox\csname Parbox3\endcsname
\expandafter\newbox\csname Parbox4\endcsname
\expandafter\newbox\csname Parbox5\endcsname
\def\endPar{\egroup
\count@\@ne
{\vbadness\@M\vfuzz\maxdimen\splitmaxdepth\maxdimen\splittopskip\ht\strutbox
\setbox\z@\vsplit\Parbox@ to\ht\Parbox@
\loop
\ifnum\count@<\Parcount@
\expandafter\expandafter\expandafter\global\expandafter\setbox
\csname Parbox\number\count@\endcsname\vsplit\Parbox@ to\ht\Parbox@
\count@@\count@\advance\count@@\@ne
\global\csname Parprev\number\count@@\endcsname
\dp\csname Parbox\number\count@\endcsname
\advance\count@\@ne
\repeat}%
\vskip\parskip
\count@\@ne
\def\nextv@##1##2\nextv@{\DN@{##1}\gdef\Parlist@{##2}}%
\loop
\ifnum\count@<\Parcount@
\dimen@\csname Parprev\number\count@\endcsname
\advance\dimen@\ht\strutbox
\ifdim\dimen@<\baselineskip
\advance\dimen@-\baselineskip\vskip-\dimen@
\else
\vskip\lineskip
\fi
\unvbox\csname Parbox\number\count@\endcsname
\global\setbox\islandbox@\box\csname Parfigbox\number\count@\endcsname
\expandafter\nextv@\Parlist@\nextv@
\if a\next@\Aplace@\else
\if A\next@\AAplace@\else
\if b\next@\Bplace@\else
\if c\next@\Cplace@\else
\if m\next@\Mplace@\else
\if M\next@\MXplace@\fi\fi\fi\fi\fi\fi
\advance\count@\@ne
\repeat
\global\Par@false
\ifvoid\Parbox@
\prevdepth\csname Parprev\number\count@\endcsname
\else
\dimen@\csname Parprev\number\count@\endcsname\advance\dimen@\ht\strutbox
\ifdim\dimen@<\baselineskip
\advance\dimen@-\baselineskip\vskip-\dimen@
\else
\vskip\lineskip
\fi
\dimen@\dp\Parbox@
\unvbox\Parbox@
\prevdepth\dimen@
\fi}
\def\folio{{\page@F\page@S{\page@P\page@N{\number\page@C}\page@Q}}}
\def\advancepageno{\global\advance\pageno\@ne}
\newif\ifspecialsplit@
\newbox\outbox@
\let\shipout@\shipout
\def\plainoutput{\specialsplit@false\ifvoid\topins\else\ifdim\ht\topins=\z@
\specialsplit@true\advance\minpagesize-\skip\topins\fi\fi
\fliptopins@
\setbox\outbox@\vbox{\makeheadline\pagebody\makefootline}%
{\noexpands@\let\style\relax
\shipout@\box\outbox@}%
\advancepageno
\resetdimtopins@
\ifvoid\@cclv\else\unvbox\@cclv\penalty\outputpenalty\fi
\ifnum\outputpenalty>-\@MM\else\dosupereject\fi}
\def\pagebody{\vbox to\vsize{\boxmaxdepth\maxdepth
\ifvoid\margin@\else
\rlap{\kern\hsize\vbox to\z@{\kern4\p@\box\margin@\vss}}\fi
\pagecontents}}
\newif\ifonlytop@
\def\pagecontents{%
\onlytop@false
\ifdim\ht\@cclv<\minpagesize\ifnum\flipcount@<\tw@\ifvoid\footins
\onlytop@true\fi\fi\fi
\test@false
\ifC@
\ifnum\flipcount@=\@ne
\global\multiply\Cdim@\tw@
\ifdim\Cdim@>\ht\@cclv
\test@true
\fi
\fi
\global\C@false
\iftest@
\dimen@\ht\@cclv
\advance\dimen@\skip\topins
{\vfuzz\maxdimen\vbadness\@M
\splitmaxdepth\maxdepth\splittopskip\topskip
\setbox\z@\vsplit\@cclv to\dimen@
\unvbox\z@}%
\global\setbox\topins\vbox{\unvbox\topins
\global\setbox\@ne\lastbox}%
\setbox\z@\vbox{\unvbox\@ne
\breakisland@}%
\nointerlineskip
\vskip\abovebotfigskip
\printisland@
\else
\ifnum\flipcount@>\z@
\global\setbox\topins\vbox{\unvbox\topins\global\setbox\@ne\lastbox}%
\setbox\z@\vbox{\unvbox\@ne
\breakisland@}%
\printisland@
\ifonlytop@\kern-\prevdepth\vfill\else\vskip\belowtopfigskip\fi
\fi
\ifdim\ht\@cclv<\minpagesize
\ifonlytop@\else\vfill\fi
\else
\ifspecialsplit@
{\vfuzz\maxdimen\vbadness\@M
\splitmaxdepth\maxdepth\splittopskip\topskip
\dimen@ii\ht\@cclv \advance\dimen@ii\skip\topins
\setbox\z@\vsplit\@cclv to\dimen@ii
\unvbox\z@}%
\else
\unvbox\@cclv
\fi
\bottomfigs@
\ifvoid\footins\else\vskip\skip\footins\footnoterule\unvbox\footins\fi}
\newread\readdata@
\def\readthedata@#1{\expandafter
\ifx\csname#1@D\endcsname\relax
\immediate\openin\readdata@=#1.dat
\ifeof\readdata@
\Err@{No file #1.dat}%
\else
{\endlinechar\m@ne\gdef\Next@{}%
\DNii@##1 ##2 ##3pt{\global\data@ht##1\global\data@dp##2%
\global\data@wd##3pt}%
\loop
\ifeof\readdata@
\else
\read\readdata@ to\next@
\ifx\next@\empty\else
\edef\next@{\expandafter\nextii@\next@}%
\expandafter\rightadd@\next@\to\Next@
\fi
\repeat}%
\immediate\closein\readdata@
\expandafter\expandafter\expandafter\global\expandafter
\let\csname#1@D\endcsname\Next@\global\let\Next@\relax
\fi
\fi}
\newdimen\data@ht
\newdimen\data@dp
\newdimen\data@wd
\newif\ifgetdata@
\def\getdata@#1#2{\global\getdata@true\count@#2\relax
{\let\\\or\xdef\Next@{\ifcase\number\count@#1\else
\global\noexpand\getdata@false\fi}}\Next@}
\def\paste#1#2{\readthedata@{#1}%
\getdata@{\csname#1@D\endcsname}{#2}%
\ifgetdata@
\dimen@\data@ht \advance\dimen@\data@dp
\hbox{\special{dvipaste: #1 #2}%
\lower\data@dp\vbox to\dimen@{\hbox to\data@wd{}\vfil}}%
\else
{\lccode`\Z=`\#\lccode`\N=`\N\lccode`\F=`\F%
\lowercase{\Err@{No data for File [#1], Z#2}}}%
\fi}
\newdimen\httable
\newdimen\dptable
\newdimen\wdtable
\def\measuretable#1#2{\readthedata@{#1}%
\getdata@{\csname#1@D\endcsname}{#2}%
\ifgetdata@
\httable\data@ht \dptable\data@dp \wdtable\data@wd
\else
{\lccode`\Z=`\#\lccode`\N=`\N\lccode`\F=`\F%
\lowercase{\Err@{No data for File [#1], Z#2}}}%
\fi}
\def\East#1#2{\setboxz@h{$\m@th\ssize\;{#1}\;\;$}%
\setbox\tw@\hbox{$\m@th\ssize\;{#2}\;\;$}\setbox4=\hbox{$\m@th#2$}%
\dimen@\minaw@
\ifdim\wdz@>\dimen@\dimen@\wdz@\fi\ifdim\wd\tw@>\dimen@\dimen@\wd\tw@\fi
\ifdim\wd4 >\z@
\mathrel{\mathop{\hbox to\dimen@{\rightarrowfill}}\limits^{#1}_{#2}}%
\else
\mathrel{\mathop{\hbox to\dimen@{\rightarrowfill}}\limits^{#1}}%
\fi}
\def\West#1#2{\setboxz@h{$\m@th\ssize\;\;{#1}\;$}%
\setbox\tw@\hbox{$\m@th\ssize\;\;{#2}\;$}\setbox4=\hbox{$\m@th#2$}%
\dimen@\minaw@
\ifdim\wdz@>\dimen@\dimen@\wdz@\fi\ifdim\wd\tw@>\dimen@\dimen@\wd\tw@\fi
\ifdim\wd4 >\z@
\mathrel{\mathop{\hbox to\dimen@{\leftarrowfill}}\limits^{#1}_{#2}}%
\else
\mathrel{\mathop{\hbox to\dimen@{\leftarrowfill}}\limits^{#1}}%
\fi}
\font\arrow@i=lams1
\font\arrow@ii=lams2
\font\arrow@iii=lams3
\font\arrow@iv=lams4
\font\arrow@v=lams5
\newdimen\standardcgap
\standardcgap40\p@
\newdimen\hunit
\hunit\tw@\p@
\newdimen\standardrgap
\standardrgap32\p@
\newdimen\vunit
\vunit1.6\p@
\def\Cgaps#1{\RIfM@
\standardcgap#1\standardcgap\relax\hunit#1\hunit\relax
\else\nonmatherr@\Cgaps\fi}
\def\Rgaps#1{\RIfM@
\standardrgap#1\standardrgap\relax\vunit#1\vunit\relax
\else\nonmatherr@\Rgaps\fi}
\newdimen\getdim@
\def\getcgap@#1{\ifcase#1\or\getdim@\z@\else\getdim@\standardcgap\fi}
\def\getrgap@#1{\ifcase#1\getdim@\z@\else\getdim@\standardrgap\fi}
\def\cgaps{\RIfM@\expandafter\cgaps@\else\expandafter\nonmatherr@
\expandafter\cgaps\fi}
\def\cgaps@{\ifnum\catcode`\;=\active\expandafter\cgapsA@\else
\expandafter\cgapsO@\fi}
\def\cgapsO@#1{\toks@{\ifcase\i@\or\getdim@=\z@}%
\gaps@@\standardcgap#1;\gaps@@\gaps@@
\edef\next@{\the\toks@\noexpand\else\noexpand\getdim@\noexpand\standardcgap
\noexpand\fi}%
\toks@=\expandafter{\next@}%
\edef\getcgap@##1{\i@##1\relax\the\toks@}\toks@{}}
{\catcode`\;=\active
\gdef\cgapsA@#1{\toks@{\ifcase\i@\or\getdim@=\z@}%
\gaps@@\standardcgap#1;\gaps@@\gaps@@
\edef\next@{\the\toks@\noexpand\else\noexpand\getdim@\noexpand\standardcgap
\noexpand\fi}%
\toks@=\expandafter{\next@}%
\edef\getcgap@##1{\i@##1\relax\the\toks@}\toks@{}}
\def\Gaps@@{\gaps@@}
\def\gaps@@#1#2;#3{\mgaps@#1#2\mgaps@
\edef\next@{\the\toks@\noexpand\or\noexpand\getdim@
\noexpand#1\the\mgapstoks@@}%
\toks@\expandafter{\next@}%
\DN@{#3}%
\ifx\next@\Gaps@@\def\next@##1\gaps@@{}\else
\def\next@{\gaps@@#1#3}\fi\next@}
{\catcode`\;=\active
\gdef\rgaps#1{\RIfM@{\ifnum\catcode`\;=\active\def;{\string;}\fi
\xdef\Next@{\noexpand\rgaps@{#1}}}%
\Next@\edef\getrgap@##1{\i@##1\relax\the\toks@}\toks@{}\else
\nonmatherr@\rgaps\fi}
\def\rgaps@#1{\toks@{\ifcase\i@\getdim@=\z@}%
\gaps@@\standardrgap#1;\gaps@@\gaps@@
\edef\next@{\the\toks@\noexpand\else\noexpand\getdim@\noexpand\standardrgap
\noexpand\fi}%
\toks@=\expandafter{\next@}}
\newbox\ZER@
\def\mgaps@#1{\let\mgapsnext@#1\FNSS@\mgaps@@}
\def\mgaps@@{\ifx\next\w\expandafter\mgaps@@@\else
\expandafter\mgaps@@@@\fi}
\newtoks\mgapstoks@@
\def\mgaps@@@@#1\mgaps@{\getdim@\mgapsnext@\getdim@#1\getdim@
\edef\next@{\noexpand\getdim@\the\getdim@}%
\mgapstoks@@\expandafter{\next@}}
\def\mgaps@@@\w#1#2\mgaps@{\mgaps@@@@#2\mgaps@
\setbox\ZER@\hbox{$\m@th\hskip15\p@\tsize@#1$}%
\dimen@\wd\ZER@
\ifdim\dimen@>\getdim@\getdim@\dimen@\fi
\edef\next@{\noexpand\getdim@\the\getdim@}%
\mgapstoks@@\expandafter{\next@}}
\def\changewidth#1#2{\setbox\ZER@{$\m@th#2}%
\hbox to\wd\ZER@{\hss$\m@th#1$\hss}}
\atdef@({\FN@\ARROW@}
\def\ARROW@{\ifx\next)\let\next@\OPTIONS@\else
\DN@{\csname\string @(\endcsname}\fi\next@}
\newif\ifoptions@
\def\OPTIONS@){\ifoptions@\let\next@\relax\else
\DN@{\global\options@true\begingroup\optioncodes@}\fi\next@}
\newif\ifN@
\newif\ifE@
\newif\ifNESW@
\newif\ifH@
\newif\ifV@
\newif\ifHshort@
\expandafter\def\csname\string @(\endcsname #1,#2){%
\ifoptions@\expandafter\endgroup\fi
\N@false\E@false\H@false\V@false\Hshort@false
\ifnum#1>\z@\E@true\fi
\ifnum#1=\z@\V@true\global\tX@false\global\tY@false\global\a@false\fi
\ifnum#2>\z@\N@true\fi
\ifnum#2=\z@\H@true\global\tX@false\global\tY@false\global\a@false
\ifshort@\Hshort@true\fi\fi
\NESW@false
\ifN@\ifE@\NESW@true\fi\else\ifE@\else\NESW@true\fi\fi
\arrow@{#1}{#2}%
\global\options@false
\global\scount@\z@\global\tcount@\z@\global\arrcount@\z@
\global\s@false\global\sxdimen@\z@\global\sydimen@\z@
\global\tX@false\global\tXdimen@i\z@\global\tXdimen@ii\z@
\global\tY@false\global\tYdimen@i\z@\global\tYdimen@ii\z@
\global\a@false\global\exacount@\z@
\global\x@false\global\xdimen@\z@
\global\X@false\global\Xdimen@\z@
\global\y@false\global\ydimen@\z@
\global\Y@false\global\Ydimen@\z@
\global\p@false\global\pdimen@\z@
\global\label@ifalse\global\label@iifalse
\global\dl@ifalse\global\ldimen@i\z@
\global\dl@iifalse\global\ldimen@ii\z@
\global\short@false\global\unshort@false}
\newif\iflabel@i
\newif\iflabel@ii
\newcount\scount@
\newcount\tcount@
\newcount\arrcount@
\newif\ifs@
\newdimen\sxdimen@
\newdimen\sydimen@
\newif\iftX@
\newdimen\tXdimen@i
\newdimen\tXdimen@ii
\newif\iftY@
\newdimen\tYdimen@i
\newdimen\tYdimen@ii
\newif\ifa@
\newcount\exacount@
\newif\ifx@
\newdimen\xdimen@
\newif\ifX@
\newdimen\Xdimen@
\newif\ify@
\newdimen\ydimen@
\newif\ifY@
\newdimen\Ydimen@
\newif\ifp@
\newdimen\pdimen@
\newif\ifdl@i
\newif\ifdl@ii
\newdimen\ldimen@i
\newdimen\ldimen@ii
\newif\ifshort@
\newif\ifunshort@
\def\zero@#1{\ifnum\scount@=\z@
\if#1e\global\scount@\m@ne\else
\if#1t\global\scount@\tw@\else
\if#1h\global\scount@\thr@@\else
\if#1'\global\scount@6 \else
\if#1`\global\scount@7 \else
\if#1(\global\scount@8 \else
\if#1)\global\scount@9 \else
\if#1s\global\scount@12 \else
\if#1H\global\scount@13 \else
\Err@{\Invalid@@ option \string\0}\fi\fi\fi\fi\fi\fi\fi\fi\fi
\fi}
\def\one@#1{\ifnum\tcount@=\z@
\if#1e\global\tcount@\m@ne\else
\if#1h\global\tcount@\tw@\else
\if#1t\global\tcount@\thr@@\else
\if#1'\global\tcount@4 \else
\if#1`\global\tcount@5 \else
\if#1(\global\tcount@\ten@ \else
\if#1)\global\tcount@11 \else
\if#1s\global\tcount@12 \else
\if#1H\global\tcount@13 \else
\Err@{\Invalid@@ option \string\1}\fi\fi\fi\fi\fi\fi\fi\fi\fi
\fi}
\def\a@#1{\ifnum\arrcount@=\z@
\if#10\global\arrcount@\m@ne\else
\if#1+\global\arrcount@\@ne\else
\if#1-\global\arrcount@\tw@\else
\if#1=\global\arrcount@\thr@@\else
\Err@{\Invalid@@ option \string\a}\fi\fi\fi\fi
\fi}
\def\ds@{\ifnum\catcode`\;=\active\expandafter\dsA@\else
\expandafter\dsO@\fi}
\def\dsO@(#1;#2){\ds@@{#1}{#2}}
\def\ds@@#1#2{\ifs@\else
\global\s@true
\global\sxdimen@\hunit\global\sxdimen@#1\sxdimen@\relax
\global\sydimen@\vunit\global\sydimen@#2\sydimen@\relax
\fi}
\def\dtX@{\ifnum\catcode`\;=\active\expandafter\dtXA@\else
\expandafter\dtXO@\fi}
\def\dtXO@(#1;#2){\dtX@@{#1}{#2}}
\def\dtX@@#1#2{\iftX@\else
\global\tX@true
\global\tXdimen@i\hunit\global\tXdimen@i#1\tXdimen@i\relax
\global\tXdimen@ii\vunit\global\tXdimen@ii#2\tXdimen@ii\relax
\fi}
\def\dtY@{\ifnum\catcode`\;=\active\expandafter\dtYA@\else
\expandafter\dtYO@\fi}
\def\dtYO@(#1;#2){\dtY@@{#1}{#2}}
\def\dtY@@#1#2{\iftY@\else
\global\tY@true
\global\tYdimen@i\hunit\global\tYdimen@i#1\tYdimen@i\relax
\global\tYdimen@ii\vunit\global\tYdimen@ii#2\tYdimen@ii\relax
\fi}
{\catcode`\;=\active
\gdef\dsA@(#1;#2){\ds@@{#1}{#2}}
\gdef\dtXA@(#1;#2){\dtX@@{#1}{#2}}
\gdef\dtYA@(#1;#2){\dtY@@{#1}{#2}}
\def\da@#1{\ifa@\else\global\a@true\global\exacount@#1\relax\fi}
\def\dx@#1{\ifx@\else
\global\x@true
\global\xdimen@\hunit\global\xdimen@#1\xdimen@\relax
\fi}
\def\dX@#1{\ifX@\else
\global\X@true
\global\Xdimen@\hunit\global\Xdimen@#1\Xdimen@\relax
\fi}
\def\dy@#1{\ify@\else
\global\y@true
\global\ydimen@\vunit\global\ydimen@#1\ydimen@\relax
\fi}
\def\dY@#1{\ifY@\else
\global\Y@true
\global\Ydimen@\vunit\global\Ydimen@#1\Ydimen@\relax
\fi}
\def\p@@#1{\ifp@\else
\global\p@true
\global\pdimen@\hunit\global\divide\pdimen@\tw@
\global\pdimen@#1\pdimen@\relax
\fi}
\def\L@#1{\iflabel@i\else
\global\label@itrue\gdef\label@i{#1}%
\fi}
\def\l@#1{\iflabel@ii\else
\global\label@iitrue\gdef\label@ii{#1}%
\fi}
\def\dL@#1{\ifdl@i\else
\global\dl@itrue\global\ldimen@i\hunit\global\ldimen@i#1\ldimen@i\relax
\fi}
\def\dl@#1{\ifdl@ii\else
\global\dl@iitrue\global\ldimen@ii\hunit\global\ldimen@ii#1\ldimen@ii\relax
\fi}
\def\s@{\ifunshort@\else\global\short@true\fi}
\def\uns@{\ifshort@\else\global\unshort@true\global\short@false\fi}
\def\optioncodes@{\let\0\zero@\let\1\one@\let\a\a@\let\ds\ds@\let\dtX\dtX@
\let\dtY\dtY@\let\da\da@\let\dx\dx@\let\dX\dX@\let\dY\dY@\let\dy\dy@
\let\p\p@@\let\L\L@\let\l\l@\let\dL\dL@\let\dl\dl@\let\s\s@\let\uns\uns@}
\def\slopes@{\\161\\152\\143\\134\\255\\126\\357\\238\\349\\45{10}\\56{11}%
\\11{12}\\65{13}\\54{14}\\43{15}\\32{16}\\53{17}\\21{18}\\52{19}\\31{20}%
\\41{21}\\51{22}\\61{23}}
\newcount\tan@i
\newcount\tan@ip
\newcount\tan@ii
\newcount\tan@iip
\newdimen\slope@i
\newdimen\slope@ip
\newdimen\slope@ii
\newdimen\slope@iip
\newcount\angcount@
\newcount\extracount@
\def\slope@{{\slope@i\secondy@\advance\slope@i-\firsty@
\ifN@\else\multiply\slope@i\m@ne\fi
\slope@ii\secondx@\advance\slope@ii-\firstx@
\ifE@\else\multiply\slope@ii\m@ne\fi
\ifdim\slope@ii<\z@
\global\tan@i6 \global\tan@ii\@ne\global\angcount@23
\else
\dimen@\slope@i\multiply\dimen@6
\ifdim\dimen@<\slope@ii
\global\tan@i\@ne\global\tan@ii6 \global\angcount@\@ne
\else
\dimen@\slope@ii\multiply\dimen@6
\ifdim\dimen@<\slope@i
\global\tan@i6 \global\tan@ii\@ne\global\angcount@23
\else
\global\tan@ip\z@\global\tan@iip\@ne
\def\\##1##2##3{\global\angcount@##3\relax
\slope@ip\slope@i\slope@iip\slope@ii
\multiply\slope@iip##1\relax\multiply\slope@ip##2\relax
\ifdim\slope@iip<\slope@ip
\global\tan@ip##1\relax\global\tan@iip##2\relax
\else
\global\tan@i##1\relax\global\tan@ii##2\relax
\def\\####1####2####3{}%
\fi}%
\slopes@
\slope@i\secondy@\advance\slope@i-\firsty@
\ifN@\else\multiply\slope@i\m@ne\fi
\multiply\slope@i\tan@ii\multiply\slope@i\tan@iip\multiply\slope@i\tw@
\count@\tan@i\multiply\count@\tan@iip
\extracount@\tan@ip\multiply\extracount@\tan@ii
\advance\count@\extracount@
\slope@ii\secondx@\advance\slope@ii-\firstx@
\ifE@\else\multiply\slope@ii\m@ne\fi
\multiply\slope@ii\count@
\ifdim\slope@i<\slope@ii
\global\tan@i\tan@ip\global\tan@ii\tan@iip
\global\advance\angcount@\m@ne
\fi
\fi
\fi
\fi}%
\def\slope@a#1{{\def\\##1##2##3{\ifnum##3=#1\global\tan@i##1\relax
\global\tan@ii##2\relax\fi}\slopes@}}
\newcount\i@
\newcount\j@
\newcount\colcount@
\newcount\Colcount@
\newcount\tcolcount@
\newdimen\rowht@
\newdimen\rowdp@
\newcount\rowcount@
\newcount\Rowcount@
\newcount\maxcolrow@
\newtoks\colwidthtoks@
\newtoks\Rowheighttoks@
\newtoks\Rowdepthtoks@
\newtoks\widthtoks@
\newtoks\Widthtoks@
\newtoks\heighttoks@
\newtoks\Heighttoks@
\newtoks\depthtoks@
\newtoks\Depthtoks@
\newif\iffirstCDcr@
\def\dotoks@i{%
\global\widthtoks@\expandafter{\the\widthtoks@\else\getdim@\z@\fi}%
\global\heighttoks@\expandafter{\the\heighttoks@\else\getdim@\z@\fi}%
\global\depthtoks@\expandafter{\the\depthtoks@\else\getdim@\z@\fi}}
\def\dotoks@ii{%
\global\widthtoks@{\ifcase\j@}%
\global\heighttoks@{\ifcase\j@}%
\global\depthtoks@{\ifcase\j@}}
\def\preCD@#1\endCD{\setbox\ZER@
\vbox{%
\def\arrow@##1##2{{}}%
\global\rowcount@\m@ne\global\colcount@\z@\global\Colcount@\z@
\global\firstCDcr@true\toks@{}%
\global\widthtoks@{\ifcase\j@}%
\global\Widthtoks@{\ifcase\i@}%
\global\heighttoks@{\ifcase\j@}%
\global\Heighttoks@{\ifcase\i@}%
\global\depthtoks@{\ifcase\j@}%
\global\Depthtoks@{\ifcase\i@}%
\global\Rowheighttoks@{\ifcase\i@}%
\global\Rowdepthtoks@{\ifcase\i@}%
\Let@
\everycr{%
\noalign{%
\global\advance\rowcount@\@ne
\ifnum\colcount@<\Colcount@
\else
\global\Colcount@\colcount@\global\maxcolrow@\rowcount@
\fi
\global\colcount@\z@
\iffirstCDcr@
\global\firstCDcr@false
\else
\edef\next@{\the\Rowheighttoks@\noexpand\or\noexpand\getdim@\the\rowht@}%
\global\Rowheighttoks@\expandafter{\next@}%
\edef\next@{\the\Rowdepthtoks@\noexpand\or\noexpand\getdim@\the\rowdp@}%
\global\Rowdepthtoks@\expandafter{\next@}%
\global\rowht@\z@\global\rowdp@\z@
\dotoks@i
\edef\next@{\the\Widthtoks@\noexpand\or\the\widthtoks@}%
\global\Widthtoks@\expandafter{\next@}%
\edef\next@{\the\Heighttoks@\noexpand\or\the\heighttoks@}%
\global\Heighttoks@\expandafter{\next@}%
\edef\next@{\the\Depthtoks@\noexpand\or\the\depthtoks@}%
\global\Depthtoks@\expandafter{\next@}%
\dotoks@ii
\fi}}%
\tabskip\z@
\halign{&\setbox\ZER@\hbox{\vrule\height\ten@\p@\width\z@\depth\z@ %1
$\m@th\displaystyle{##}$}\copy\ZER@
\ifdim\ht\ZER@>\rowht@\global\rowht@\ht\ZER@\fi
\ifdim\dp\ZER@>\rowdp@\global\rowdp@\dp\ZER@\fi
\global\advance\colcount@\@ne
\edef\next@{\the\widthtoks@\noexpand\or\noexpand\getdim@\the\wd\ZER@}%
\global\widthtoks@\expandafter{\next@}%
\edef\next@{\the\heighttoks@\noexpand\or\noexpand\getdim@\the\ht\ZER@}%
\global\heighttoks@\expandafter{\next@}%
\edef\next@{\the\depthtoks@\noexpand\or\noexpand\getdim@\the\dp\ZER@}%
\global\depthtoks@\expandafter{\next@}%
\cr#1\crcr}}%
\Rowcount@\rowcount@
\global\Widthtoks@\expandafter{\the\Widthtoks@\fi\relax}%
\edef\Width@##1##2{\i@##1\relax\j@##2\relax\the\Widthtoks@}%
\global\Heighttoks@\expandafter{\the\Heighttoks@\fi\relax}%
\edef\Height@##1##2{\i@##1\relax\j@##2\relax\the\Heighttoks@}%
\global\Depthtoks@\expandafter{\the\Depthtoks@\fi\relax}%
\edef\Depth@##1##2{\i@##1\relax\j@##2\relax\the\Depthtoks@}%
\edef\next@{\the\Rowheighttoks@\noexpand\fi\relax}%
\global\Rowheighttoks@\expandafter{\next@}%
\edef\Rowheight@##1{\i@##1\relax\the\Rowheighttoks@}%
\edef\next@{\the\Rowdepthtoks@\noexpand\fi\relax}%
\global\Rowdepthtoks@\expandafter{\next@}%
\edef\Rowdepth@##1{\i@##1\relax\the\Rowdepthtoks@}%
\global\colwidthtoks@{\fi}%
\setbox\ZER@\vbox{%
\unvbox\ZER@
\count@\rowcount@
\loop
\unskip\unpenalty
\setbox\ZER@\lastbox
\ifnum\count@>\maxcolrow@\advance\count@\m@ne
\repeat
\hbox{%
\unhbox\ZER@
\count@\z@
\loop
\unskip
\setbox\ZER@\lastbox
\edef\next@{\noexpand\or\noexpand\getdim@\the\wd\ZER@\the\colwidthtoks@}%
\global\colwidthtoks@\expandafter{\next@}%
\advance\count@\@ne
\ifnum\count@<\Colcount@
\repeat}}%
\edef\next@{\noexpand\ifcase\noexpand\i@\the\colwidthtoks@}%
\global\colwidthtoks@\expandafter{\next@}%
\edef\Colwidth@##1{\i@##1\relax\the\colwidthtoks@}%
\global\colwidthtoks@{}\global\Rowheighttoks@{}\global\Rowdepthtoks@{}%
\global\widthtoks@{}\global\Widthtoks@{}\global\heighttoks@{}%
\global\Heighttoks@{}\global\depthtoks@{}\global\Depthtoks@{}%
\newcount\xoff@
\newcount\yoff@
\newcount\endcount@
\newcount\rcount@
\newdimen\firstx@
\newdimen\firsty@
\newdimen\secondx@
\newdimen\secondy@
\newdimen\tocenter@
\newdimen\charht@
\newdimen\charwd@
\def\outside@{\Err@{This arrow points outside the \string\CD}}
\newif\ifsvertex@
\newif\iftvertex@
\def\arrow@#1#2{\global\xoff@#1\relax\global\yoff@#2\relax
\count@\rowcount@\advance\count@-\yoff@
\ifnum\count@<\@ne\outside@\else\ifnum\count@>\Rowcount@\outside@\fi\fi
\count@\colcount@\advance\count@\xoff@
\ifnum\count@<\@ne\outside@\else\ifnum\count@>\Colcount@\outside@\fi\fi
\tcolcount@\colcount@\advance\tcolcount@\xoff@
\Width@\rowcount@\colcount@\divide\getdim@\tw@\tocenter@-\getdim@
\ifdim\getdim@=\z@
\firstx@\z@\firsty@\mathaxis@\svertex@true
\else
\svertex@false
\ifHshort@
\Colwidth@\colcount@\divide\getdim@\tw@
\ifE@ \firstx@\getdim@ \else \firstx@-\getdim@ \fi
\else
\ifE@ \firstx@\getdim@ \else \firstx@-\getdim@ \fi
\fi
\ifE@
\ifH@ \advance\firstx@\thr@@\p@ \else \advance\firstx@-\thr@@\p@ \fi %2
\else
\ifH@ \advance\firstx@-\thr@@\p@ \else \advance\firstx@\thr@@\p@ \fi %3
\fi
\ifN@
\Height@\rowcount@\colcount@ \firsty@\getdim@ %4
\ifV@ \advance\firsty@\thr@@\p@ \fi %5
\else
\ifV@
\Depth@\rowcount@\colcount@ \firsty@-\getdim@ %6
\advance\firsty@-\thr@@\p@ %7
\else
\firsty@\z@ %8
\fi
\fi
\ifV@
\else
\Colwidth@\colcount@\divide\getdim@\tw@
\ifE@\secondx@\getdim@\else\secondx@-\getdim@\fi
\ifE@\else\getcgap@\colcount@\advance\secondx@-\getdim@\fi
\endcount@\colcount@\advance\endcount@\xoff@
\count@\colcount@
\ifE@
\advance\count@\@ne
\loop
\ifnum\count@<\endcount@
\Colwidth@\count@\advance\secondx@\getdim@
\getcgap@\count@\advance\secondx@\getdim@
\advance\count@\@ne
\repeat
\else
\advance\count@\m@ne
\loop
\ifnum\count@>\endcount@
\Colwidth@\count@\advance\secondx@-\getdim@
\getcgap@\count@\advance\secondx@-\getdim@
\advance\count@\m@ne
\repeat
\fi
\Colwidth@\count@\divide\getdim@\tw@
\ifHshort@
\else
\ifE@\advance\secondx@\getdim@\else\advance\secondx@-\getdim@\fi
\fi
\ifE@\getcgap@\count@\advance\secondx@\getdim@\fi
\rcount@\rowcount@\advance\rcount@-\yoff@
\Width@\rcount@\count@\divide\getdim@\tw@
\tvertex@false
\ifH@\ifdim\getdim@=\z@\tvertex@true\Hshort@false\fi\fi
\ifHshort@
\else
\ifE@\advance\secondx@-\getdim@\else\advance\secondx@\getdim@\fi
\fi
\iftvertex@
\advance\secondx@.4\p@
\else
\ifE@\advance\secondx@-\thr@@\p@\else\advance\secondx@\thr@@\p@\fi %9
\fi
\ifH@
\else
\ifN@
\Rowheight@\rowcount@\secondy@\getdim@
\else
\Rowdepth@\rowcount@\secondy@-\getdim@
\getrgap@\rowcount@\advance\secondy@-\getdim@
\fi
\endcount@\rowcount@\advance\endcount@-\yoff@
\count@\rowcount@
\ifN@
\advance\count@\m@ne
\loop
\ifnum\count@>\endcount@
\Rowheight@\count@\advance\secondy@\getdim@
\Rowdepth@\count@\advance\secondy@\getdim@
\getrgap@\count@\advance\secondy@\getdim@
\advance\count@\m@ne
\repeat
\else
\advance\count@\@ne
\loop
\ifnum\count@<\endcount@
\Rowheight@\count@\advance\secondy@-\getdim@
\Rowdepth@\count@\advance\secondy@-\getdim@
\getrgap@\count@\advance\secondy@-\getdim@
\advance\count@\@ne
\repeat
\fi
\tvertex@false
\ifV@\Width@\count@\colcount@\ifdim\getdim@=\z@\tvertex@true\fi\fi
\ifN@
\getrgap@\count@\advance\secondy@\getdim@
\Rowdepth@\count@\advance\secondy@\getdim@
\iftvertex@
\advance\secondy@\mathaxis@
\else
\Depth@\count@\tcolcount@\advance\secondy@-\getdim@
\advance\secondy@-\thr@@\p@ %10
\fi
\else
\Rowheight@\count@\advance\secondy@-\getdim@
\iftvertex@
\advance\secondy@\mathaxis@
\else
\Height@\count@\tcolcount@\advance\secondy@\getdim@
\advance\secondy@\thr@@\p@ %11
\fi
\fi
\ifV@\else\advance\firstx@\sxdimen@\fi
\ifH@\else\advance\firsty@\sydimen@\fi
\iftX@
\advance\secondy@\tXdimen@ii
\advance\secondx@\tXdimen@i
\slope@
\else
\iftY@
\advance\secondy@\tYdimen@ii
\advance\secondx@\tYdimen@i
\slope@
\secondy@\secondx@\advance\secondy@-\firstx@
\ifNESW@\else\multiply\secondy@\m@ne\fi
\multiply\secondy@\tan@i\divide\secondy@\tan@ii\advance\secondy@\firsty@
\else
\ifa@
\slope@
\ifNESW@\global\advance\angcount@\exacount@\else
\global\advance\angcount@-\exacount@\fi
\ifnum\angcount@>23 \global\angcount@23 \fi
\ifnum\angcount@<\@ne\global\angcount@\@ne\fi
\slope@a\angcount@
\ifY@
\advance\secondy@\Ydimen@
\else
\ifX@
\advance\secondx@\Xdimen@
\dimen@\secondx@\advance\dimen@-\firstx@
\ifNESW@\else\multiply\dimen@\m@ne\fi
\multiply\dimen@\tan@i\divide\dimen@\tan@ii
\advance\dimen@\firsty@\secondy@\dimen@
\fi
\fi
\else
\ifH@\else\ifV@\else\slope@\fi\fi
\fi
\fi
\ifH@\else\ifV@\else\ifsvertex@\else
\dimen@6\p@\multiply\dimen@\tan@ii
\count@\tan@i\advance\count@\tan@ii\divide\dimen@\count@
\ifE@\advance\firstx@\dimen@\else\advance\firstx@-\dimen@\fi
\multiply\dimen@\tan@i\divide\dimen@\tan@ii
\ifN@\advance\firsty@\dimen@\else\advance\firsty@-\dimen@\fi
\fi\fi\fi
\ifp@
\ifH@\else\ifV@\else
\getcos@\pdimen@\advance\firsty@\dimen@\advance\secondy@\dimen@
\ifNESW@\advance\firstx@-\dimen@ii\else\advance\firstx@\dimen@ii\fi
\fi\fi
\ifH@\else\ifV@\else
\ifnum\tan@i>\tan@ii
\charht@\ten@\p@\charwd@\ten@\p@
\multiply\charwd@\tan@ii\divide\charwd@\tan@i
\else
\charwd@\ten@\p@\charht@\ten@\p@
\divide\charht@\tan@ii\multiply\charht@\tan@i
\fi
\ifnum\tcount@=\thr@@
\ifN@\advance\secondy@-.3\charht@\else\advance\secondy@.3\charht@\fi
\fi
\ifnum\scount@=\tw@
\ifE@\advance\firstx@.3\charht@\else\advance\firstx@-.3\charht@\fi
\fi
\ifnum\tcount@=12
\ifN@\advance\secondy@-\charht@\else\advance\secondy@\charht@\fi
\fi
\iftY@
\else
\ifa@
\ifX@
\else
\secondx@\secondy@\advance\secondx@-\firsty@
\ifNESW@\else\multiply\secondx@\m@ne\fi
\multiply\secondx@\tan@ii\divide\secondx@\tan@i
\advance\secondx@\firstx@
\fi
\fi
\fi
\fi\fi
\ifH@\harrow@\else\ifV@\varrow@\else\arrow@@\fi\fi}
\newdimen\mathaxis@
\mathaxis@90\p@\divide\mathaxis@36
\def\harrow@b{\ifE@\hskip\tocenter@\hskip\firstx@\fi}
\def\harrow@bb{\ifE@\hskip\xdimen@\else\hskip\Xdimen@\fi}
\def\harrow@e{\ifE@\else\hskip-\firstx@\hskip-\tocenter@\fi}
\def\harrow@ee{\ifE@\hskip-\Xdimen@\else\hskip-\xdimen@\fi}
\def\harrow@{\dimen@\secondx@\advance\dimen@-\firstx@
\ifE@\let\next@\rlap\else\multiply\dimen@\m@ne\let\next@\llap\fi
\next@{%
\harrow@b
\smash{\raise\pdimen@\hbox to\dimen@
{\harrow@bb\arrow@ii
\ifnum\arrcount@=\m@ne\else\ifnum\arrcount@=\thr@@\else
\ifE@
\ifnum\scount@=\m@ne
\else
\ifcase\scount@\or\or\char118 \or\char117 \or\or\or\char119 \or
\char120 \or\char121 \or\char122 \or\or\or\arrow@i\char125 \or
\char117 \hskip\thr@@\p@\char117 \hskip-\thr@@\p@\fi
\fi
\else
\ifnum\tcount@=\m@ne
\else
\ifcase\tcount@\char117 \or\or\char117 \or\char118 \or\char119 \or
\char120 \or\or\or\or\or\char121 \or\char122 \or\arrow@i\char125
\or\char117 \hskip\thr@@\p@\char117 \hskip-\thr@@\p@\fi
\fi
\fi
\fi\fi
\dimen@\mathaxis@\advance\dimen@.2\p@
\dimen@ii\mathaxis@\advance\dimen@ii-.2\p@
\ifnum\arrcount@=\m@ne
\let\leads@\null
\else
\ifcase\arrcount@
\def\leads@{\hrule\height\dimen@\depth-\dimen@ii}\or
\def\leads@{\hrule\height\dimen@\depth-\dimen@ii}\or
\def\leads@{\hbox to\ten@\p@{%
\leaders\hrule\height\dimen@\depth-\dimen@ii\hfil
\hfil
\leaders\hrule\height\dimen@\depth-\dimen@ii\hskip\z@ plus2fil\relax
\hfil
\leaders\hrule\height\dimen@\depth-\dimen@ii\hfil}}\or
\def\leads@{\hbox{\hbox to\ten@\p@{\dimen@\mathaxis@\advance\dimen@1.2\p@
\dimen@ii\dimen@\advance\dimen@ii-.4\p@
\leaders\hrule\height\dimen@\depth-\dimen@ii\hfil}%
\kern-\ten@\p@
\hbox to\ten@\p@{\dimen@\mathaxis@\advance\dimen@-1.2\p@
\dimen@ii\dimen@\advance\dimen@ii-.4\p@
\leaders\hrule\height\dimen@\depth-\dimen@ii\hfil}}}\fi
\fi
\cleaders\leads@\hfil
\ifnum\arrcount@=\m@ne\else\ifnum\arrcount@=\thr@@\else
\arrow@i
\ifE@
\ifnum\tcount@=\m@ne
\else
\ifcase\tcount@\char119 \or\or\char119 \or\char120 \or\char121 \or
\char122 \or \or\or\or\or\char123 \or\char124 \or
\char125 \or\char119 \hskip-\thr@@\p@\char119 \hskip\thr@@\p@\fi
\fi
\else
\ifcase\scount@\or\or\char120 \or\char119 \or\or\or\char121 \or\char122
\or\char123 \or\char124 \or\or\or\char125 \or
\char119 \hskip-\thr@@\p@\char119 \hskip\thr@@\p@\fi
\fi
\fi\fi
\harrow@ee}}%
\harrow@e}%
\iflabel@i
\dimen@ii\z@\setbox\ZER@\hbox{$\m@th\tsize@@\label@i$}%
\ifnum\arrcount@=\m@ne
\else
\advance\dimen@ii\mathaxis@
\advance\dimen@ii\dp\ZER@\advance\dimen@ii\tw@\p@
\ifnum\arrcount@=\thr@@\advance\dimen@ii\tw@\p@\fi
\fi
\advance\dimen@ii\pdimen@
\next@{\harrow@b\smash{\raise\dimen@ii\hbox to\dimen@
{\harrow@bb\hskip\tw@\ldimen@i\hfil\box\ZER@\hfil\harrow@ee}}\harrow@e}%
\iflabel@ii
\ifnum\arrcount@=\m@ne
\else
\setbox\ZER@\hbox{$\m@th\tsize@\label@ii$}%
\dimen@ii-\ht\ZER@\advance\dimen@ii-\tw@\p@
\ifnum\arrcount@=\thr@@\advance\dimen@ii-\tw@\p@\fi
\advance\dimen@ii\mathaxis@\advance\dimen@ii\pdimen@
\next@{\harrow@b\smash{\raise\dimen@ii\hbox to\dimen@
{\harrow@bb\hskip\tw@\ldimen@ii\hfil\box\ZER@\hfil\harrow@ee}}\harrow@e}%
\fi
\fi}
\let\tsize@\tsize
\def\tsizeCDlabels{\let\tsize@\tsize}
\def\ssizeCDlabels{\let\tsize@\ssize}
\def\tsize@@{\ifnum\arrcount@=\m@ne\else\tsize@\fi}
\def\varrow@{\dimen@\secondy@\advance\dimen@-\firsty@
\ifN@\else\multiply\dimen@\m@ne\fi
\setbox\ZER@\vbox to\dimen@
{\ifN@\vskip-\Ydimen@\else\vskip\ydimen@\fi
\ifnum\arrcount@=\m@ne\else\ifnum\arrcount@=\thr@@\else
\hbox{\arrow@iii
\ifN@
\ifnum\tcount@=\m@ne
\else
\ifcase\tcount@\char117 \or\or\char117 \or\char118 \or\char119 \or
\char120 \or\or\or\or\or\char121 \or\char122 \or\char123 \or
\vbox{\hbox{\char117}\nointerlineskip\vskip\thr@@\p@
\hbox{\char117}\vskip-\thr@@\p@}\fi
\fi
\else
\ifcase\scount@\or\or\char118 \or\char117 \or\or\or\char119 \or
\char120 \or\char121 \or\char122 \or\or\or\char123 \or
\vbox{\hbox{\char117}\nointerlineskip\vskip\thr@@\p@
\hbox{\char117}\vskip-\thr@@\p@}\fi
\fi}%
\nointerlineskip
\fi\fi
\ifnum\arrcount@=\m@ne
\let\leads@\null
\else
\ifcase\arrcount@\let\leads@\vrule\or\let\leads@\vrule\or
\def\leads@{\vbox to\ten@\p@{%
\hrule\height1.67\p@\depth\z@\width.4\p@
\vfil
\hrule\height3.33\p@\depth\z@\width.4\p@
\vfil
\hrule\height1.67\p@\depth\z@\width.4\p@}}\or
\def\leads@{\hbox{\vrule\height\p@\hskip\tw@\p@\vrule}}\fi
\fi
\cleaders\leads@\vfill\nointerlineskip
\ifnum\arrcount@=\m@ne\else\ifnum\arrcount@=\thr@@\else
\hbox{\arrow@iv
\ifN@
\ifcase\scount@\or\or\char118 \or\char117 \or\or\or\char119 \or
\char120 \or\char121 \or\char122 \or\or\or\arrow@iii\char123 \or
\vbox{\hbox{\char117}\nointerlineskip\vskip-\thr@@\p@
\hbox{\char117}\vskip\thr@@\p@}\fi
\else
\ifnum\tcount@=\m@ne
\else
\ifcase\tcount@\char117 \or\or\char117 \or\char118 \or\char119 \or
\char120 \or\or\or\or\or\char121 \or\char122 \or\arrow@iii\char123 \or
\vbox{\hbox{\char117}\nointerlineskip\vskip-\thr@@\p@
\hbox{\char117}\vskip\thr@@\p@}\fi
\fi
\fi}%
\fi\fi
\ifN@\vskip\ydimen@\else\vskip-\Ydimen@\fi}%
\ifN@
\dimen@ii\firsty@
\else
\dimen@ii-\firsty@\advance\dimen@ii\ht\ZER@\multiply\dimen@ii\m@ne
\rlap{\smash{\hskip\tocenter@\hskip\pdimen@\raise\dimen@ii\box\ZER@}}%
\iflabel@i
\setbox\ZER@\vbox to\dimen@{\vfil
\hbox{$\m@th\tsize@@\label@i$}\vskip\tw@\ldimen@i\vfil}%
\rlap{\smash{\hskip\tocenter@\hskip\pdimen@
\ifnum\arrcount@=\m@ne\let\next@\relax\else\let\next@\llap\fi
\next@{\raise\dimen@ii\hbox{\ifnum\arrcount@=\m@ne\hskip-.5\wd\ZER@\fi
\box\ZER@\ifnum\arrcount@=\m@ne\else\hskip\tw@\p@\fi}}}}%
\iflabel@ii
\ifnum\arrcount@=\m@ne
\else
\setbox\ZER@\vbox to\dimen@{\vfil
\hbox{$\m@th\tsize@\label@ii$}\vskip\tw@\ldimen@ii\vfil}%
\rlap{\smash{\hskip\tocenter@\hskip\pdimen@
\rlap{\raise\dimen@ii\hbox{\ifnum\arrcount@=\thr@@\hskip4.5\p@\else
\hskip2.5\p@\fi\box\ZER@}}}}%
\fi
\newdimen\goal@
\newdimen\shifted@
\newcount\Tcount@
\newcount\Scount@
\newbox\shaft@
\newcount\slcount@
\def\getcos@#1{%
\ifnum\tan@i<\tan@ii
\dimen@#1%
\ifnum\slcount@<8 \count@9 \else \ifnum\slcount@<12 \count@8 \else
\count@7 \fi\fi
\multiply\dimen@\count@\divide\dimen@\ten@
\dimen@ii\dimen@\multiply\dimen@ii\tan@i\divide\dimen@ii\tan@ii
\else
\dimen@ii#1%
\count@-\slcount@\advance\count@24
\ifnum\count@<8 \count@9 \else \ifnum\count@<12 \count@8
\else\count@7 \fi\fi
\multiply\dimen@ii\count@\divide\dimen@ii\ten@
\dimen@\dimen@ii\multiply\dimen@\tan@ii\divide\dimen@\tan@i
\fi}
\newdimen\adjust@
\def\Nnext@{\ifN@\let\next@\raise\else\let\next@\lower\fi}
\def\arrow@@{\slcount@\angcount@
\ifNESW@
\ifnum\angcount@<\ten@
\let\arrowfont@\arrow@i\global\advance\angcount@\m@ne
\global\multiply\angcount@13
\else
\ifnum\angcount@<19
\let\arrowfont@\arrow@ii\global\advance\angcount@-\ten@
\global\multiply\angcount@13
\else
\let\arrowfont@\arrow@iii\global\advance\angcount@-19
\global\multiply\angcount@13
\fi\fi
\Tcount@\angcount@
\else
\ifnum\angcount@<5
\let\arrowfont@\arrow@iii\global\advance\angcount@\m@ne
\global\multiply\angcount@13 \global\advance\angcount@65
\else
\ifnum\angcount@<14
\let\arrowfont@\arrow@iv\global\advance\angcount@-5
\global\multiply\angcount@13
\else
\ifnum\angcount@<23
\let\arrowfont@\arrow@v\global\advance\angcount@-14
\global\multiply\angcount@13
\else
\let\arrowfont@\arrow@i\global\angcount@117
\fi\fi\fi
\ifnum\angcount@=117 \Tcount@115 \else\Tcount@\angcount@\fi
\Scount@\Tcount@
\ifE@
\ifnum\tcount@=\z@\advance\Tcount@\tw@\else\ifnum\tcount@=13
\advance\Tcount@\tw@\else\advance\Tcount@\tcount@\fi\fi
\ifnum\scount@=\z@\else\ifnum\scount@=13 \advance\Scount@\thr@@\else
\advance\Scount@\scount@\fi\fi
\else
\ifcase\tcount@\advance\Tcount@\thr@@\or\or\advance\Tcount@\thr@@\or
\advance\Tcount@\tw@\or\advance\Tcount@6 \or\advance\Tcount@7
\or\or\or\or\or\advance\Tcount@8 \or\advance\Tcount@9 \or
\advance\Tcount@12 \or\advance\Tcount@\thr@@\fi
\ifcase\scount@\or\or\advance\Scount@\thr@@\or\advance\Scount@\tw@\or
\or\or\advance\Scount@4 \or\advance\Scount@5 \or\advance\Scount@\ten@
\or\advance\Scount@11 \or\or\or\advance\Scount@12 \or\advance
\Scount@\tw@\fi
\ifcase\arrcount@\or\or\global\advance\angcount@\@ne\else\fi
\ifN@\shifted@\firsty@\else\shifted@-\firsty@\fi
\ifE@\else\advance\shifted@\charht@\fi
\goal@\secondy@\advance\goal@-\firsty@
\ifN@\else\multiply\goal@\m@ne\fi
\setbox\shaft@\hbox{\arrowfont@\char\angcount@}%
\ifnum\arrcount@=\thr@@
\getcos@{1.5\p@}%
\setbox\shaft@\hbox to\wd\shaft@{\arrowfont@
\rlap{\hskip\dimen@ii
\smash{\ifNESW@\let\next@\lower\else\let\next@\raise\fi
\next@\dimen@\hbox{\arrowfont@\char\angcount@}}}%
\rlap{\hskip-\dimen@ii
\smash{\ifNESW@\let\next@\raise\else\let\next@\lower\fi
\next@\dimen@\hbox{\arrowfont@\char\angcount@}}}\hfil}%
\rlap{\smash{\hskip\tocenter@\hskip\firstx@
\ifnum\arrcount@=\m@ne
\else
\ifnum\arrcount@=\thr@@
\else
\ifnum\scount@=\m@ne
\else
\ifnum\scount@=\z@
\else
\setbox\ZER@\hbox{\ifnum\angcount@=117 \arrow@v\else\arrowfont@\fi
\char\Scount@}%
\ifNESW@
\ifnum\scount@=\tw@
\dimen@\shifted@\advance\dimen@-\charht@
\ifN@\hskip-\wd\ZER@\fi
\Nnext@
\next@\dimen@\copy\ZER@
\ifN@\else\hskip-\wd\ZER@\fi
\else
\Nnext@
\ifN@\else\hskip-\wd\ZER@\fi
\next@\shifted@\copy\ZER@
\ifN@\hskip-\wd\ZER@\fi
\fi
\ifnum\scount@=12
\advance\shifted@\charht@\advance\goal@-\charht@
\ifN@\hskip\wd\ZER@\else\hskip-\wd\ZER@\fi
\fi
\ifnum\scount@=13
\getcos@{\thr@@\p@}%
\ifN@\hskip\dimen@\else\hskip-\wd\ZER@\hskip-\dimen@\fi
\adjust@\shifted@\advance\adjust@\dimen@ii
\Nnext@
\next@\adjust@\copy\ZER@
\ifN@\hskip-\dimen@\hskip-\wd\ZER@\else\hskip\dimen@\fi
\fi
\else
\ifN@\hskip-\wd\ZER@\fi
\ifnum\scount@=\tw@
\ifN@\hskip\wd\ZER@\else\hskip-\wd\ZER@\fi
\dimen@\shifted@\advance\dimen@-\charht@
\Nnext@
\next@\dimen@\copy\ZER@
\ifN@\hskip-\wd\ZER@\fi
\else
\Nnext@
\next@\shifted@\copy\ZER@
\ifN@\else\hskip-\wd\ZER@\fi
\fi
\ifnum\scount@=12
\advance\shifted@\charht@\advance\goal@-\charht@
\ifN@\hskip-\wd\ZER@\else\hskip\wd\ZER@\fi
\fi
\ifnum\scount@=13
\getcos@{\thr@@\p@}%
\ifN@\hskip-\wd\ZER@\hskip-\dimen@\else\hskip\dimen@\fi
\adjust@\shifted@\advance\adjust@\dimen@ii
\Nnext@
\next@\adjust@\copy\ZER@
\ifN@\hskip\dimen@\else\hskip-\dimen@\hskip-\wd\ZER@\fi
\fi
\fi
\fi\fi\fi\fi
\ifnum\arrcount@=\m@ne
\else
\loop
\ifdim\goal@>\charht@
\ifE@\else\hskip-\charwd@\fi
\Nnext@
\next@\shifted@\copy\shaft@
\ifE@\else\hskip-\charwd@\fi
\advance\shifted@\charht@\advance\goal@-\charht@
\repeat
\ifdim\goal@>\z@
\dimen@\charht@\advance\dimen@-\goal@
\divide\dimen@\tan@i\multiply\dimen@\tan@ii
\ifE@\hskip-\dimen@\else\hskip-\charwd@\hskip\dimen@\fi
\adjust@\shifted@\advance\adjust@-\charht@\advance\adjust@\goal@
\Nnext@
\next@\adjust@\copy\shaft@
\ifE@\else\hskip-\charwd@\fi
\else
\adjust@\shifted@\advance\adjust@-\charht@
\fi
\fi
\ifnum\arrcount@=\m@ne
\else
\ifnum\arrcount@=\thr@@
\else
\ifnum\tcount@=\m@ne
\else
\setbox\ZER@
\hbox{\ifnum\angcount@=117 \arrow@v\else\arrowfont@\fi\char\Tcount@}%
\ifnum\tcount@=\thr@@
\advance\adjust@\charht@
\ifE@\else\ifN@\hskip-\charwd@\else\hskip-\wd\ZER@\fi\fi
\else
\ifnum\tcount@=12
\advance\adjust@\charht@
\ifE@\else\ifN@\hskip-\charwd@\else\hskip-\wd\ZER@\fi\fi
\else
\ifE@\hskip-\wd\ZER@\fi
\fi\fi
\Nnext@
\next@\adjust@\copy\ZER@
\ifnum\tcount@=13
\hskip-\wd\ZER@
\getcos@{\thr@@\p@}%
\ifE@\hskip-\dimen@\else\hskip\dimen@\fi
\advance\adjust@-\dimen@ii
\Nnext@
\next@\adjust@\box\ZER@
\fi
\fi\fi\fi}}%
\iflabel@i
\rlap{\hskip\tocenter@
\dimen@\firstx@\advance\dimen@\secondx@\divide\dimen@\tw@
\advance\dimen@\ldimen@i
\dimen@ii\firsty@\advance\dimen@ii\secondy@\divide\dimen@ii\tw@
\global\multiply\ldimen@i\tan@i\global\divide\ldimen@i\tan@ii
\ifNESW@\advance\dimen@ii\ldimen@i\else\advance\dimen@ii-\ldimen@i\fi
\setbox\ZER@\hbox{\ifNESW@\else\ifnum\arrcount@=\thr@@\hskip4\p@\else
\hskip\tw@\p@\fi\fi
$\m@th\tsize@@\label@i$\ifNESW@\ifnum\arrcount@=\thr@@\hskip4\p@\else
\hskip\tw@\p@\fi\fi}%
\ifnum\arrcount@=\m@ne
\ifNESW@\advance\dimen@.5\wd\ZER@\advance\dimen@\p@\else
\advance\dimen@-.5\wd\ZER@\advance\dimen@-\p@\fi
\advance\dimen@ii-.5\ht\ZER@
\else
\advance\dimen@ii\dp\ZER@
\ifnum\slcount@<6 \advance\dimen@ii\tw@\p@\fi
\fi
\hskip\dimen@
\ifNESW@\let\next@\llap\else\let\next@\rlap\fi
\next@{\smash{\raise\dimen@ii\box\ZER@}}}%
\iflabel@ii
\ifnum\arrcount@=\m@ne
\else
\rlap{\hskip\tocenter@
\dimen@\firstx@\advance\dimen@\secondx@\divide\dimen@\tw@
\ifNESW@\advance\dimen@\ldimen@ii\else\advance\dimen@-\ldimen@ii\fi
\dimen@ii\firsty@\advance\dimen@ii\secondy@\divide\dimen@ii\tw@
\global\multiply\ldimen@ii\tan@i\global\divide\ldimen@ii\tan@ii
\advance\dimen@ii\ldimen@ii
\setbox\ZER@\hbox{\ifNESW@\ifnum\arrcount@=\thr@@\hskip4\p@\else
\hskip\tw@\p@\fi\fi
$\m@th\tsize@\label@ii$\ifNESW@\else\ifnum\arrcount@=\thr@@\hskip4\p@
\else\hskip\tw@\p@\fi\fi}%
\advance\dimen@ii-\ht\ZER@
\ifnum\slcount@<9 \advance\dimen@ii-\thr@@\p@\fi
\ifNESW@\let\next@\rlap\else\let\next@\llap\fi
\hskip\dimen@\next@{\smash{\raise\dimen@ii\box\ZER@}}}%
\fi
\def\outCD@#1{\def#1{\Err@{\noexpand#1must not be used within \string\CD}}}
\newskip\preCDskip@
\newskip\postCDskip@
\preCDskip@\z@
\postCDskip@\z@
\def\preCDspace#1{\RIfMIfI@
\onlydmatherr@\preCDspace\else\advance\preCDskip@#1\relax\fi\else
\onlydmatherr@\preCDspace\fi}
\def\postCDspace#1{\RIfMIfI@
\onlydmatherr@\postCDspace\else\advance\postCDskip@#1\relax\fi\else
\onlydmatherr@\postCDspace\fi}
\def\predisplayspace#1{\RIfMIfI@
\onlydmatherr@\predisplayspace\else
\advance\abovedisplayskip#1\relax
\advance\abovedisplayshortskip#1\relax\fi
\else\onlydmatherr@\preCDspace\fi}
\def\postdisplayspace#1{\RIfMIfI@
\onlydmatherr@\postdisplayspace\else
\advance\belowdisplayskip#1\relax
\advance\belowdisplayshortskip#1\relax\fi
\else\onlydmatherr@\postdisplayspace\fi}
\def\PreCDSpace#1{\global\preCDskip@#1\relax}
\def\PostCDSpace#1{\global\postCDskip@#1\relax}
\def\CD#1\endCD{%
\outCD@\cgaps\outCD@\rgaps\outCD@\Cgaps\outCD@\Rgaps
\preCD@#1\endCD
\advance\abovedisplayskip\preCDskip@
\advance\abovedisplayshortskip\preCDskip@
\advance\belowdisplayskip\postCDskip@
\advance\belowdisplayshortskip\postCDskip@
\vcenter{\offinterlineskip
\vskip\preCDskip@\Let@\global\colcount@\@ne\global\rowcount@\z@
\everycr{%
\noalign{%
\ifnum\rowcount@=\Rowcount@
\else
\getrgap@\rowcount@\vskip\getdim@
\global\advance\rowcount@\@ne\global\colcount@\@ne
\fi}}%
\tabskip\z@
\halign{&\global\xoff@\z@\global\yoff@\z@
\getcgap@\colcount@\hskip\getdim@
\hfil\vrule\height\ten@\p@\width\z@\depth\z@
$\m@th\displaystyle{##}$\hfil
\global\advance\colcount@\@ne\cr
#1\crcr}\vskip\postCDskip@}%
\preCDskip@\z@\postCDskip@\z@
\def\getcgap@##1{\ifcase##1\or\getdim@\z@\else\getdim@\standardcgap\fi}%
\def\getrgap@##1{\ifcase##1\getdim@\z@\else\getdim@\standardrgap\fi}%
\let\Width@\relax\let\Height@\relax\let\Depth@\relax\let\Rowheight@\relax
\let\Rowdepth@\relax\let\Colwidth@\relax
\let\enddocument\bye
\def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne
\ch@ck#1#4#2%
\allocationnumber=\count1#1%
\global#3#5=\allocationnumber
\wlog{\string#5=\string#2\the\allocationnumber}}
\catcode`\@=\active